20 #ifndef INC_C4Viewport
21 #define INC_C4Viewport
53 void SetOutputSize(int32_t draw_x, int32_t draw_y, int32_t out_x, int32_t out_y, int32_t out_wdt, int32_t out_hgt);
56 void SetZoom(
float to_zoom,
bool direct =
false);
62 bool Init(int32_t for_player,
bool set_temporary_only);
63 void DropFile(
const char* filename,
float x,
float y);
94 void SetViewOffset(int32_t x, int32_t y) { viewOffsX = x; viewOffsY = y; }
98 float targetViewX, targetViewY;
99 int32_t viewOffsX, viewOffsY;
101 void UpdateBordersX();
102 void UpdateBordersY();
114 std::unique_ptr<C4FoWRegion>
pFoW;
131 #ifdef WITH_QT_EDITOR
132 class C4ConsoleQtViewportScrollArea *scrollarea;
136 friend LRESULT APIENTRY
ViewportWinProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
150 void Execute(
bool DrawBackground);
161 #ifdef USE_WIN32_WINDOWS
164 int32_t
GetAudibility(int32_t x, int32_t y, int32_t *pan, int32_t audibility_radius = 0, int32_t *out_player =
nullptr);
LRESULT APIENTRY ViewportWinProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
bool ViewPositionByScrollBars()
void ChangeZoom(float by_factor)
C4TargetFacet last_gui_draw_cgo
float GetZoomByViewRange(int32_t size_x, int32_t size_y) const
bool UpdateOutputSize(int32_t new_width=0, int32_t new_height=0)
bool Init(int32_t for_player, bool set_temporary_only)
int32_t ViewportOpenFrame
std::unique_ptr< C4ViewportWindow > pWindow
void DrawMenu(C4TargetFacet &cgo)
float GetZoomTarget() const
C4ViewportWindow * GetWindow()
void DrawPlayerInfo(C4TargetFacet &cgo)
float WindowToGameX(int32_t win_x)
bool ScrollBarsByViewPosition()
void ScrollView(float by_x, float by_y)
void SetZoomLimits(float to_min_zoom, float to_max_zoom)
C4TargetFacet last_game_draw_cgo
void DrawPlayerStartup(C4TargetFacet &cgo)
float GetZoomLimitMin() const
friend class C4ConsoleQtViewportView
void SetOutputSize(int32_t draw_x, int32_t draw_y, int32_t out_x, int32_t out_y, int32_t out_wdt, int32_t out_hgt)
void AdjustZoomAndPosition()
void DropFile(const char *filename, float x, float y)
std::unique_ptr< C4FoWRegion > pFoW
float WindowToGameY(int32_t win_y)
void SetViewOffset(int32_t x, int32_t y)
void AdjustPosition(bool immediate=false)
void Draw(C4TargetFacet &cgo, bool draw_game, bool draw_overlay)
void DrawOverlay(C4TargetFacet &cgo, const ZoomData &GameZoom)
bool IsViewportMenu(class C4Menu *menu)
void SetZoom(float zoom_value)
float GetZoomLimitMax() const
void ClearPointers(C4Object *obj)
bool FreeScroll(C4Vec2D scroll_by)
bool ViewportNextPlayer()
C4Viewport * FirstViewport
int32_t GetViewportCount()
C4Viewport * GetFirstViewport()
void RecalculateViewports()
C4Viewport * GetViewport(int32_t player_nr, C4Viewport *prev=nullptr)
C4RectList BackgroundAreas
void DrawFullscreenBackground()
void Execute(bool DrawBackground)
bool CloseViewport(int32_t player_nr, bool silent)
bool CreateViewport(int32_t player_nr, bool silent=false)
int32_t GetAudibility(int32_t x, int32_t y, int32_t *pan, int32_t audibility_radius=0, int32_t *out_player=nullptr)
void MouseMoveToViewport(int32_t button, int32_t x, int32_t y, DWORD key_param)
void ClearPointers(C4Object *obj)
void SortViewportsByPlayerControl()