22 #ifndef BACKENDS_GRAPHICS_ABSTRACT_H 23 #define BACKENDS_GRAPHICS_ABSTRACT_H 25 #include "common/system.h" 26 #include "common/noncopyable.h" 27 #include "common/keyboard.h" 28 #include "common/rect.h" 29 #include "common/rotationmode.h" 31 #include "graphics/mode.h" 32 #include "graphics/paletteman.h" 47 static const OSystem::GraphicsMode noGraphicsModes[] = {{
"NONE",
"Normal", 0}, {
nullptr,
nullptr, 0 }};
48 return noGraphicsModes;
50 virtual int getDefaultGraphicsMode()
const {
return 0; }
52 virtual int getGraphicsMode()
const {
return 0; }
53 #if defined(USE_IMGUI) 54 virtual void setImGuiCallbacks(
const ImGuiCallbacks &callbacks) { }
55 virtual void *getImGuiTexture(
const Graphics::Surface &image,
const byte *palette,
int palCount) {
return nullptr; }
56 virtual void freeImGuiTexture(
void *texture) { }
58 virtual bool setShader(
const Common::Path &fileName) {
return false; }
60 static const OSystem::GraphicsMode noStretchModes[] = {{
"NONE",
"Normal", 0}, {
nullptr,
nullptr, 0 }};
61 return noStretchModes;
63 virtual int getDefaultStretchMode()
const {
return 0; }
64 virtual bool setStretchMode(
int mode) {
return false; }
65 virtual int getStretchMode()
const {
return 0; }
67 virtual uint getDefaultScaler()
const {
return 0; }
68 virtual uint getDefaultScaleFactor()
const {
return 1; }
69 virtual bool setScaler(uint mode,
int factor) {
return false; }
70 virtual uint getScaler()
const {
return 0; }
71 virtual uint getScaleFactor()
const {
return 1; }
79 virtual int getScreenChangeID()
const = 0;
81 virtual void beginGFXTransaction() = 0;
84 virtual int16 getHeight()
const = 0;
85 virtual int16 getWidth()
const = 0;
86 virtual void setPalette(
const byte *colors, uint start, uint num) = 0;
87 virtual void grabPalette(byte *colors, uint start, uint num)
const = 0;
88 virtual void copyRectToScreen(
const void *buf,
int pitch,
int x,
int y,
int w,
int h) = 0;
90 virtual void unlockScreen() = 0;
91 virtual void fillScreen(uint32 col) = 0;
92 virtual void fillScreen(
const Common::Rect &r, uint32 col) = 0;
93 virtual void updateScreen() = 0;
94 virtual void presentBuffer() {}
95 virtual void setShakePos(
int shakeXOffset,
int shakeYOffset) = 0;
96 virtual void setFocusRectangle(
const Common::Rect& rect) = 0;
97 virtual void clearFocusRectangle() = 0;
99 virtual void showOverlay(
bool inGUI) = 0;
100 virtual void hideOverlay() = 0;
101 virtual bool isOverlayVisible()
const = 0;
103 virtual void clearOverlay() = 0;
105 virtual void copyRectToOverlay(
const void *buf,
int pitch,
int x,
int y,
int w,
int h) = 0;
106 virtual int16 getOverlayHeight()
const = 0;
107 virtual int16 getOverlayWidth()
const = 0;
108 virtual Common::Rect getSafeOverlayArea(int16 *width, int16 *height)
const {
109 int16 w = getOverlayWidth(),
110 h = getOverlayHeight();
111 if (width) *width = w;
112 if (height) *height = h;
115 virtual float getHiDPIScreenFactor()
const {
return 1.0f; }
117 virtual bool showMouse(
bool visible) = 0;
118 virtual void warpMouse(
int x,
int y) = 0;
119 virtual void setMouseCursor(
const void *buf, uint w, uint h,
int hotspotX,
int hotspotY, uint32 keycolor,
bool dontScale =
false,
const Graphics::PixelFormat *format =
nullptr,
const byte *mask =
nullptr) = 0;
120 virtual void setCursorPalette(
const byte *colors, uint start, uint num) = 0;
130 virtual void saveScreenshot() {}
131 virtual bool lockMouse(
bool lock) {
return false; }
virtual void setPalette(const byte *colors, uint start, uint num)=0
Feature
Definition: system.h:405
TransactionError
Definition: system.h:1168
virtual void grabPalette(byte *colors, uint start, uint num) const =0
Definition: graphics.h:38
RotationMode
Definition: rotationmode.h:44
Definition: paletteman.h:47