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"
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,
71enum 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;
153 bool setGraphicsMode(GraphicsModeID modeID);
159 float getScaleRatio()
const;
188 int hotspotY, uint32 keycolor,
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;
Definition: mixer_intern.h:58
Definition: base-backend.h:31
Definition: keymapper-defaults.h:32
Definition: archive.h:330
Definition: dirtyrects.h:43
Definition: osystem.h:105
virtual PaletteManager * getPaletteManager()
Definition: osystem.h:138
void fillScreen(uint32 col)
virtual void fatalError()
Graphics::Surface * lockScreen()
Graphics::PixelFormat getOverlayFormat() const
void fillScreen(const Common::Rect &r, uint32 col)
void copyRectToScreen(const void *buf, int pitch, int x, int y, int w, int h)
GUI::OptionsContainerWidget * buildBackendOptionsWidget(GUI::GuiObject *boss, const Common::String &name, const Common::String &target) const override
virtual void logMessage(LogMessageType::Type type, const char *message)
void setMouseCursor(const void *buf, uint w, uint h, int hotspotX, int hotspotY, uint32 keycolor, const Graphics::PixelFormat *format, const byte *mask, frac_t scaleX, frac_t scaleY)
void setCursorPalette(const byte *colors, uint start, uint num)
void displayActivityIconOnOSD(const Graphics::Surface *icon) override
void registerDefaultSettings(const Common::String &target) const override
virtual Common::String getSystemLanguage() const
virtual int16 getOverlayHeight() const
bool pollEvent(Common::Event &event) override
void initSize(uint width, uint height, const Graphics::PixelFormat *format=NULL)
OSystem::TransactionError endGFXTransaction()
void applyBackendSettings() override
virtual void initBackend()
virtual int getScreenChangeID() const
Definition: osystem.h:151
virtual void getTimeAndDate(TimeDate &td, bool skipRecord=false) const
Common::KeymapperDefaultBindings * getKeymapperDefaultBindings() override
int16 getHeight()
Definition: osystem.h:157
virtual Common::MutexInternal * createMutex()
void setPalette(const byte *colors, uint start, uint num)
void showOverlay(bool inGUI)
void beginGFXTransaction()
virtual uint32 getMillis(bool skipRecord=false)
bool isOverlayVisible() const
Definition: osystem.h:174
virtual void delayMillis(uint msecs)
bool notifyEvent(const Common::Event &event) override
int16 getWidth()
Definition: osystem.h:158
virtual bool getFeatureState(OSystem::Feature f)
virtual bool hasFeature(OSystem::Feature f)
virtual int16 getOverlayWidth() const
void grabPalette(byte *colors, uint start, uint num) const
void copyRectToOverlay(const void *buf, int pitch, int x, int y, int w, int h)
void clearFocusRectangle()
virtual void setFeatureState(OSystem::Feature f, bool enable)
void displayMessageOnOSD(const Common::U32String &msg) override
virtual Common::Path getDefaultConfigFileName()
bool showMouse(bool visible)
Common::KeymapArray getGlobalKeymaps() override
void grabOverlay(Graphics::Surface &surface)
void warpMouse(int x, int y)
void setFocusRectangle(const Common::Rect &rect)
void setShakePos(int shakeXOffset, int shakeYOffset)
virtual Audio::Mixer * getMixer()
void addSysArchivesToSearchSet(Common::SearchSet &s, int priority) override
Common::HardwareInputSet * getHardwareInputSet() override
Definition: paletteman.h:47
int32 frac_t
Definition: frac.h:52
Feature
Definition: system.h:415
TransactionError
Definition: system.h:1188
Definition: atari-screen.h:58