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 "common/frac.h" 29 #include "graphics/blit.h" 30 #include "graphics/dirtyrects.h" 31 #include "graphics/paletteman.h" 32 #include "base/main.h" 33 #include "audio/mixer_intern.h" 34 #include "backends/graphics/graphics.h" 35 #include "backends/log/log.h" 36 #include "backends/platform/3ds/sprite.h" 37 #include "common/events.h" 38 #include "common/rect.h" 39 #include "common/queue.h" 40 #include "common/ustr.h" 41 #include "engines/engine.h" 43 #define TICKS_PER_MSEC 268123 66 kScreenTop = 0x10000002,
71 enum TransactionState {
73 kTransactionActive = 1,
74 kTransactionRollback = 2
79 bool formatChanged, modeChanged;
82 formatChanged =
false;
89 GPU_TEXCOLOR textureFormat;
90 uint32 textureTransferFlags;
95 GraphicsModeID gfxModeID;
110 volatile bool exiting;
111 volatile bool sleeping;
113 virtual void initBackend();
125 void registerDefaultSettings(
const Common::String &target)
const override;
127 void applyBackendSettings()
override;
129 virtual uint32 getMillis(
bool skipRecord =
false);
130 virtual void delayMillis(uint msecs);
131 virtual void getTimeAndDate(
TimeDate &td,
bool skipRecord =
false)
const;
140 virtual void fatalError();
149 void initSize(uint width, uint height,
153 bool setGraphicsMode(GraphicsModeID modeID);
155 void beginGFXTransaction();
159 float getScaleRatio()
const;
160 void setPalette(
const byte *colors, uint start, uint num);
161 void grabPalette(byte *colors, uint start, uint num)
const;
162 void copyRectToScreen(
const void *buf,
int pitch,
int x,
int y,
int w,
166 void fillScreen(uint32 col);
169 void setShakePos(
int shakeXOffset,
int shakeYOffset);
171 void clearFocusRectangle();
172 void showOverlay(
bool inGUI);
178 void copyRectToOverlay(
const void *buf,
int pitch,
int x,
int y,
int w,
180 virtual int16 getOverlayHeight()
const;
181 virtual int16 getOverlayWidth()
const;
185 bool showMouse(
bool visible);
186 void warpMouse(
int x,
int y);
187 void setMouseCursor(
const void *buf, uint w, uint h,
int hotspotX,
188 int hotspotY, uint32 keycolor,
191 void setCursorPalette(
const byte *colors, uint start, uint num);
194 void transformPoint(touchPosition &point);
196 void clipPoint(touchPosition &point);
198 void setCursorDelta(
float deltaX,
float deltaY);
201 void updateMagnify();
202 void updateBacklight();
207 void init3DSGraphics();
208 void destroy3DSGraphics();
212 void destroyEvents();
214 void flushGameScreen();
225 u16 _gameWidth, _gameHeight;
226 u16 _gameTopX, _gameTopY;
227 u16 _gameBottomX, _gameBottomY;
233 GraphicsModeID _graphicsModeID;
234 TransactionState _transactionState;
238 Graphics::FastBlitFunc _blitFunc;
242 byte _palette[3 * 256];
243 byte _cursorPalette[3 * 256];
244 uint32 _paletteMap[256];
249 Sprite _gameBottomTexture;
253 bool _filteringEnabled;
256 kOSDMessageDuration = 800
258 uint32 _osdMessageEndTime;
260 int _screenShakeXOffset;
261 int _screenShakeYOffset;
262 bool _overlayVisible;
267 shaderProgram_s _program;
268 int _projectionLocation;
269 int _modelviewLocation;
270 C3D_Mtx _projectionTop;
271 C3D_Mtx _projectionBottom;
272 C3D_RenderTarget* _renderTargetTop;
273 C3D_RenderTarget* _renderTargetBottom;
278 C3D_Mtx _focusMatrix;
279 int _focusPosX, _focusPosY;
280 int _focusTargetPosX, _focusTargetPosY;
281 float _focusStepPosX, _focusStepPosY;
282 float _focusScaleX, _focusScaleY;
283 float _focusTargetScaleX, _focusTargetScaleY;
284 float _focusStepScaleX, _focusStepScaleY;
285 uint32 _focusClearTime;
295 bool _cursorPaletteEnabled;
297 float _cursorScreenX, _cursorScreenY;
298 float _cursorOverlayX, _cursorOverlayY;
299 float _cursorDeltaX, _cursorDeltaY;
300 int _cursorHotspotX, _cursorHotspotY;
301 uint32 _cursorKeyColor;
304 MagnifyMode _magnifyMode;
306 u16 _magWidth, _magHeight;
307 u16 _magCenterX, _magCenterY;
virtual int getScreenChangeID() const
Definition: osystem.h:151
virtual PaletteManager * getPaletteManager()
Definition: osystem.h:138
Definition: osystem.h:105
Feature
Definition: system.h:415
Definition: atari-screen.h:58
int16 getWidth()
Definition: osystem.h:158
Definition: mixer_intern.h:58
bool isOverlayVisible() const
Definition: osystem.h:174
int16 getHeight()
Definition: osystem.h:157
Definition: base-backend.h:31
TransactionError
Definition: system.h:1188
Definition: archive.h:330
Definition: keymapper-defaults.h:32
Definition: dirtyrects.h:43
Definition: paletteman.h:47
int32 frac_t
Definition: frac.h:52