Blender V4.5
screen_geometry.cc File Reference

Functions for screen vertices and edges. More...

#include "BLI_listbase.h"
#include "BLI_math_vector.h"
#include "BLI_rect.h"
#include "BKE_screen.hh"
#include "DNA_screen_types.h"
#include "DNA_windowmanager_types.h"
#include "ED_screen.hh"
#include "MEM_guardedalloc.h"
#include "WM_api.hh"
#include "screen_intern.hh"

Go to the source code of this file.

Functions

int screen_geom_area_height (const ScrArea *area)
int screen_geom_area_width (const ScrArea *area)
ScrVertscreen_geom_vertex_add_ex (ScrAreaMap *area_map, short x, short y)
ScrVertscreen_geom_vertex_add (bScreen *screen, short x, short y)
ScrEdgescreen_geom_edge_add_ex (ScrAreaMap *area_map, ScrVert *v1, ScrVert *v2)
ScrEdgescreen_geom_edge_add (bScreen *screen, ScrVert *v1, ScrVert *v2)
bool screen_geom_edge_is_horizontal (ScrEdge *se)
ScrEdgescreen_geom_area_map_find_active_scredge (const ScrAreaMap *area_map, const rcti *bounds_rect, const int mx, const int my, int safety)
ScrEdgescreen_geom_find_active_scredge (const wmWindow *win, const bScreen *screen, const int mx, const int my)
static bool screen_geom_vertices_scale_pass (const wmWindow *win, const bScreen *screen, const rcti *screen_rect)
void screen_geom_vertices_scale (const wmWindow *win, bScreen *screen)
 Main screen-layout calculation function.
short screen_geom_find_area_split_point (const ScrArea *area, const rcti *window_rect, const eScreenAxis dir_axis, float fac)
void screen_geom_select_connected_edge (const wmWindow *win, ScrEdge *edge)

Detailed Description

Functions for screen vertices and edges.

Screen geometry refers to the vertices (ScrVert) and edges (ScrEdge) through which the flexible screen-layout system of Blender is established.

Definition in file screen_geometry.cc.

Function Documentation

◆ screen_geom_area_height()

◆ screen_geom_area_map_find_active_scredge()

ScrEdge * screen_geom_area_map_find_active_scredge ( const ScrAreaMap * area_map,
const rcti * bounds_rect,
int mx,
int my,
int safety = BORDERPADDING )

◆ screen_geom_area_width()

int screen_geom_area_width ( const ScrArea * area)

◆ screen_geom_edge_add()

ScrEdge * screen_geom_edge_add ( bScreen * screen,
ScrVert * v1,
ScrVert * v2 )

◆ screen_geom_edge_add_ex()

◆ screen_geom_edge_is_horizontal()

◆ screen_geom_find_active_scredge()

ScrEdge * screen_geom_find_active_scredge ( const wmWindow * win,
const bScreen * screen,
int mx,
int my )

◆ screen_geom_find_area_split_point()

short screen_geom_find_area_split_point ( const ScrArea * area,
const rcti * window_rect,
eScreenAxis dir_axis,
float fac )

◆ screen_geom_select_connected_edge()

void screen_geom_select_connected_edge ( const wmWindow * win,
ScrEdge * edge )

◆ screen_geom_vertex_add()

ScrVert * screen_geom_vertex_add ( bScreen * screen,
short x,
short y )

◆ screen_geom_vertex_add_ex()

ScrVert * screen_geom_vertex_add_ex ( ScrAreaMap * area_map,
short x,
short y )

◆ screen_geom_vertices_scale()

void screen_geom_vertices_scale ( const wmWindow * win,
bScreen * screen )

Main screen-layout calculation function.

  • Scale areas nicely on window size and DPI changes.
  • Ensure areas have a minimum height.
  • Correctly set global areas to their fixed height.

Definition at line 250 of file screen_geometry.cc.

References ScrAreaMap::areabase, ED_area_global_size_y(), GLOBAL_AREA_ALIGN_BOTTOM, GLOBAL_AREA_ALIGN_TOP, GLOBAL_AREA_IS_HIDDEN, wmWindow::global_areas, LISTBASE_FOREACH, screen_geom_vertices_scale(), screen_geom_vertices_scale_pass(), U, WM_window_rect_calc(), WM_window_screen_rect_calc(), rcti::xmax, rcti::xmin, rcti::ymax, and rcti::ymin.

Referenced by screen_geom_vertices_scale(), and screen_refresh_if_needed().

◆ screen_geom_vertices_scale_pass()

bool screen_geom_vertices_scale_pass ( const wmWindow * win,
const bScreen * screen,
const rcti * screen_rect )
static