49 int size, maxsize = 0, bwmaxsize = 0;
53 if (area->winx > 30 && area->winy > 30) {
54 size = area->
winx * area->winy;
56 if (foundwin == 0 && size > bwmaxsize) {
61 else if (area->spacetype !=
SPACE_IMAGE && size > maxsize) {
111 for (area =
static_cast<ScrArea *
>(screen->areabase.first); area; area = area->next) {
113 sima =
static_cast<SpaceImage *
>(area->spacedata.first);
135 bool area_was_image =
false;
156 const rcti window_rect = {
181 sima =
static_cast<SpaceImage *
>(area->spacedata.first);
190 if (area && area->full) {
195 area_was_image =
true;
206 if (area ==
nullptr) {
216 if (area ==
nullptr) {
221 sima =
static_cast<SpaceImage *
>(area->spacedata.first);
236 sima =
static_cast<SpaceImage *
>(area->spacedata.first);
244 sima =
static_cast<SpaceImage *
>(area->spacedata.first);
257 if (area_was_image == 0) {
288 sima->
flag &= ~SI_FULLWINDOW;
293 sima->
flag &= ~SI_PREVSPACE;
296 sima->
flag &= ~SI_FULLWINDOW;
306 sima->
flag &= ~SI_FULLWINDOW;
321 ot->
name =
"Cancel Render View";
323 ot->
idname =
"RENDER_OT_view_cancel";
354 (win == win_show && win_show != wincur))
364 if (
G.is_rendering ==
false) {
368 sima->
flag &= ~SI_PREVSPACE;
371 sima->
flag &= ~SI_FULLWINDOW;
391 ot->
name =
"Show/Hide Render View";
bScreen * CTX_wm_screen(const bContext *C)
ScrArea * CTX_wm_area(const bContext *C)
wmWindow * CTX_wm_window(const bContext *C)
Scene * CTX_data_scene(const bContext *C)
Main * CTX_data_main(const bContext *C)
wmWindowManager * CTX_wm_manager(const bContext *C)
Image * BKE_image_ensure_viewer(Main *bmain, int type, const char *name)
void BKE_report(ReportList *reports, eReportType type, const char *message)
void BKE_render_resolution(const RenderData *r, const bool use_crop, int *r_width, int *r_height)
ScrArea * BKE_screen_find_big_area(const bScreen *screen, int spacetype, short min)
#define LISTBASE_FOREACH(type, var, list)
void void BLI_INLINE bool BLI_listbase_is_single(const struct ListBase *lb)
@ AREA_FLAG_STACKED_FULLSCREEN
@ SPACE_FLAG_TYPE_WAS_ACTIVE
@ SPACE_FLAG_TYPE_TEMPORARY
@ USER_RENDER_DISPLAY_NONE
@ USER_RENDER_DISPLAY_SCREEN
@ USER_RENDER_DISPLAY_WINDOW
void ED_area_newspace(bContext *C, ScrArea *area, int type, bool skip_region_exit)
bool ED_operator_screenactive(bContext *C)
ScrArea * ED_screen_full_newspace(bContext *C, ScrArea *area, int type)
bool ED_operator_image_active(bContext *C)
ScrArea * ED_screen_state_toggle(bContext *C, wmWindow *win, ScrArea *area, short state)
void ED_area_prevspace(bContext *C, ScrArea *area)
void ED_screen_full_prevspace(bContext *C, ScrArea *area)
@ WIN_ALIGN_LOCATION_CENTER
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
static int render_view_cancel_exec(bContext *C, wmOperator *)
void RENDER_OT_view_show(wmOperatorType *ot)
static ScrArea * find_area_showing_render_result(bContext *C, Scene *scene, wmWindow **r_win)
ScrArea * render_view_open(bContext *C, int mx, int my, ReportList *reports)
static ScrArea * find_area_image_empty(bContext *C)
static int render_view_show_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static ScrArea * biggest_non_image_area(bContext *C)
void RENDER_OT_view_cancel(wmOperatorType *ot)
bool(* poll)(bContext *C) ATTR_WARN_UNUSED_RESULT
int(* invoke)(bContext *C, wmOperator *op, const wmEvent *event) ATTR_WARN_UNUSED_RESULT
int(* exec)(bContext *C, wmOperator *op) ATTR_WARN_UNUSED_RESULT
struct ReportList * reports
void wm_window_raise(wmWindow *win)
void wm_window_close(bContext *C, wmWindowManager *wm, wmWindow *win)
wmWindow * WM_window_open(bContext *C, const char *title, const rcti *rect_unscaled, int space_type, bool toplevel, bool dialog, bool temp, eWindowAlignment alignment, void(*area_setup_fn)(bScreen *screen, ScrArea *area, void *user_data), void *area_setup_user_data)
bool WM_window_is_temp_screen(const wmWindow *win)
Scene * WM_window_get_active_scene(const wmWindow *win)
void wm_window_lower(wmWindow *win)
bScreen * WM_window_get_active_screen(const wmWindow *win)