22 #ifndef PLATFORM_3DS_H 23 #define PLATFORM_3DS_H 25 #define FORBIDDEN_SYMBOL_EXCEPTION_time_h 27 #include "backends/base-backend.h" 28 #include "graphics/blit.h" 29 #include "graphics/dirtyrects.h" 30 #include "graphics/paletteman.h" 31 #include "base/main.h" 32 #include "audio/mixer_intern.h" 33 #include "backends/graphics/graphics.h" 34 #include "backends/log/log.h" 35 #include "backends/platform/3ds/sprite.h" 36 #include "common/events.h" 37 #include "common/rect.h" 38 #include "common/queue.h" 39 #include "common/ustr.h" 40 #include "engines/engine.h" 42 #define TICKS_PER_MSEC 268123 65 kScreenTop = 0x10000002,
70 enum TransactionState {
72 kTransactionActive = 1,
73 kTransactionRollback = 2
78 bool formatChanged, modeChanged;
81 formatChanged =
false;
88 GPU_TEXCOLOR textureFormat;
89 uint32 textureTransferFlags;
94 GraphicsModeID gfxModeID;
109 volatile bool exiting;
110 volatile bool sleeping;
112 virtual void initBackend();
124 void registerDefaultSettings(
const Common::String &target)
const override;
126 void applyBackendSettings()
override;
128 virtual uint32 getMillis(
bool skipRecord =
false);
129 virtual void delayMillis(uint msecs);
130 virtual void getTimeAndDate(
TimeDate &td,
bool skipRecord =
false)
const;
139 virtual void fatalError();
148 void initSize(uint width, uint height,
152 bool setGraphicsMode(GraphicsModeID modeID);
154 void beginGFXTransaction();
158 float getScaleRatio()
const;
159 void setPalette(
const byte *colors, uint start, uint num);
160 void grabPalette(byte *colors, uint start, uint num)
const;
161 void copyRectToScreen(
const void *buf,
int pitch,
int x,
int y,
int w,
165 void fillScreen(uint32 col);
168 void setShakePos(
int shakeXOffset,
int shakeYOffset);
170 void clearFocusRectangle();
171 void showOverlay(
bool inGUI);
177 void copyRectToOverlay(
const void *buf,
int pitch,
int x,
int y,
int w,
179 virtual int16 getOverlayHeight()
const;
180 virtual int16 getOverlayWidth()
const;
184 bool showMouse(
bool visible);
185 void warpMouse(
int x,
int y);
186 void setMouseCursor(
const void *buf, uint w, uint h,
int hotspotX,
187 int hotspotY, uint32 keycolor,
bool dontScale =
false,
189 void setCursorPalette(
const byte *colors, uint start, uint num);
192 void transformPoint(touchPosition &point);
194 void clipPoint(touchPosition &point);
196 void setCursorDelta(
float deltaX,
float deltaY);
199 void updateMagnify();
200 void updateBacklight();
205 void init3DSGraphics();
206 void destroy3DSGraphics();
210 void destroyEvents();
212 void flushGameScreen();
223 u16 _gameWidth, _gameHeight;
224 u16 _gameTopX, _gameTopY;
225 u16 _gameBottomX, _gameBottomY;
231 GraphicsModeID _graphicsModeID;
232 TransactionState _transactionState;
236 Graphics::FastBlitFunc _blitFunc;
240 byte _palette[3 * 256];
241 byte _cursorPalette[3 * 256];
242 uint32 _paletteMap[256];
247 Sprite _gameBottomTexture;
251 bool _filteringEnabled;
254 kOSDMessageDuration = 800
256 uint32 _osdMessageEndTime;
258 int _screenShakeXOffset;
259 int _screenShakeYOffset;
260 bool _overlayVisible;
265 shaderProgram_s _program;
266 int _projectionLocation;
267 int _modelviewLocation;
268 C3D_Mtx _projectionTop;
269 C3D_Mtx _projectionBottom;
270 C3D_RenderTarget* _renderTargetTop;
271 C3D_RenderTarget* _renderTargetBottom;
276 C3D_Mtx _focusMatrix;
277 int _focusPosX, _focusPosY;
278 int _focusTargetPosX, _focusTargetPosY;
279 float _focusStepPosX, _focusStepPosY;
280 float _focusScaleX, _focusScaleY;
281 float _focusTargetScaleX, _focusTargetScaleY;
282 float _focusStepScaleX, _focusStepScaleY;
283 uint32 _focusClearTime;
293 bool _cursorPaletteEnabled;
295 bool _cursorScalable;
296 float _cursorScreenX, _cursorScreenY;
297 float _cursorOverlayX, _cursorOverlayY;
298 float _cursorDeltaX, _cursorDeltaY;
299 int _cursorHotspotX, _cursorHotspotY;
300 uint32 _cursorKeyColor;
303 MagnifyMode _magnifyMode;
305 u16 _magWidth, _magHeight;
306 u16 _magCenterX, _magCenterY;
virtual int getScreenChangeID() const
Definition: osystem.h:150
virtual PaletteManager * getPaletteManager()
Definition: osystem.h:137
Definition: osystem.h:104
Feature
Definition: system.h:411
Definition: atari-screen.h:58
int16 getWidth()
Definition: osystem.h:157
Definition: mixer_intern.h:58
bool isOverlayVisible() const
Definition: osystem.h:173
int16 getHeight()
Definition: osystem.h:156
Definition: base-backend.h:31
TransactionError
Definition: system.h:1174
Definition: archive.h:330
Definition: keymapper-defaults.h:32
Definition: dirtyrects.h:43
Definition: paletteman.h:47