mirror of
https://github.com/isledecomp/isle-portable.git
synced 2026-01-11 18:41:14 +00:00
* [WIP] 3ds port
Recommit of everything after the 2d renderer merge
* VERY AWESOME FEATURE FRFR
* Stopped CPU suicide and app crashing for now
* put in Texture3DS function thing
* Fix clear color
* Implement 2D rendering via Citro3D
* Set 3dsx smdh metadata
* Render world content, sort of
* Push mesh dynamically
* Remove Citro3D init hacks
* Clean up Citro3D implementation
* Try to upload meshes and convert matricies
* Fix 3D rendering
* Apply optimizations
* Implement lighting
* Set 3dsx smdh metadata
* Revert "Apply optimizations"
This reverts commit 6660082fef.
* Apply optimizations
* Added a cleaner icon (#4)
* Fix pure buffer clear frames (#9)
* Disable OpenGL on 3DS (#10)
* Fix tiled textures and improve UI image quality (#11)
* Create 3DS default config overrides
* 3ds: implement apt hooks
* remove unused import
* Apply suggestions from code review
Co-authored-by: Christian Semmler <mail@csemmler.com>
Co-authored-by: Anonymous Maarten <madebr@users.noreply.github.com>
* Update miniwin/src/d3drm/backends/citro3d/renderer.cpp
Co-authored-by: Anonymous Maarten <madebr@users.noreply.github.com>
* Separate 3DS apt hook code + move cmake 3ds into ISLE_BUILD_APP
* miniwin: use citro3dd if debugging
* Optimize texture encoding (#12)
* Cleanup
* Set correct mipmap level for UI textures (#13)
* cpack: include the .3dsx
* Add 3DS CI
* Fix CI
Co-authored-by: Anonymous Maarten <madebr@users.noreply.github.com>
* syntax
* Refactor c3d renderer (#14)
* Refactor c3d renderer
* format
* Apply suggestions from code review
Co-authored-by: Anders Jenbo <anders@jenbo.dk>
---------
Co-authored-by: Anders Jenbo <anders@jenbo.dk>
* n3ds: just distribute the .3dsx
* upload 3dsx
* Skip uploading 3DS artifacts
* Update ci.yml
* Update ci.yml
* Remove extraneous ifdef
---------
Co-authored-by: MaxBrick <maximusbrick@gmail.com>
Co-authored-by: Anders Jenbo <anders@jenbo.dk>
Co-authored-by: Steven <139715581+StevenSYS@users.noreply.github.com>
Co-authored-by: Christian Semmler <mail@csemmler.com>
Co-authored-by: Anonymous Maarten <madebr@users.noreply.github.com>
104 lines
2.7 KiB
C++
104 lines
2.7 KiB
C++
#ifndef ISLEAPP_H
|
|
#define ISLEAPP_H
|
|
|
|
#include "lego1_export.h"
|
|
#include "legoutils.h"
|
|
#include "mxtransitionmanager.h"
|
|
#include "mxtypes.h"
|
|
#include "mxvideoparam.h"
|
|
|
|
#include <SDL3/SDL.h>
|
|
#ifdef MINIWIN
|
|
#include "miniwin/windows.h"
|
|
#else
|
|
#include <windows.h>
|
|
#endif
|
|
#include "miniwin/miniwindevice.h"
|
|
|
|
// SIZE 0x8c
|
|
class IsleApp {
|
|
public:
|
|
IsleApp();
|
|
~IsleApp();
|
|
|
|
void Close();
|
|
|
|
MxS32 SetupLegoOmni();
|
|
void SetupVideoFlags(
|
|
MxS32 fullScreen,
|
|
MxS32 flipSurfaces,
|
|
MxS32 backBuffers,
|
|
MxS32 using8bit,
|
|
MxS32 using16bit,
|
|
MxS32 param_6,
|
|
MxS32 param_7,
|
|
MxS32 wideViewAngle,
|
|
char* deviceId
|
|
);
|
|
MxResult SetupWindow();
|
|
|
|
bool LoadConfig();
|
|
bool Tick();
|
|
void SetupCursor(Cursor p_cursor);
|
|
|
|
static MxU8 MapMouseButtonFlagsToModifier(SDL_MouseButtonFlags p_flags);
|
|
|
|
HWND GetWindowHandle() { return m_windowHandle; }
|
|
MxLong GetFrameDelta() { return m_frameDelta; }
|
|
MxS32 GetFullScreen() { return m_fullScreen; }
|
|
SDL_Cursor* GetCursorCurrent() { return m_cursorCurrent; }
|
|
SDL_Cursor* GetCursorBusy() { return m_cursorBusy; }
|
|
SDL_Cursor* GetCursorNo() { return m_cursorNo; }
|
|
MxS32 GetDrawCursor() { return m_drawCursor; }
|
|
MxS32 GetGameStarted() { return m_gameStarted; }
|
|
|
|
void SetWindowActive(MxS32 p_windowActive) { m_windowActive = p_windowActive; }
|
|
void SetGameStarted(MxS32 p_gameStarted) { m_gameStarted = p_gameStarted; }
|
|
|
|
MxResult ParseArguments(int argc, char** argv);
|
|
MxResult VerifyFilesystem();
|
|
void DetectGameVersion();
|
|
|
|
private:
|
|
char* m_hdPath; // 0x00
|
|
char* m_cdPath; // 0x04
|
|
char* m_deviceId; // 0x08
|
|
char* m_savePath; // 0x0c
|
|
MxS32 m_fullScreen; // 0x10
|
|
MxS32 m_flipSurfaces; // 0x14
|
|
MxS32 m_backBuffersInVram; // 0x18
|
|
MxS32 m_using8bit; // 0x1c
|
|
MxS32 m_using16bit; // 0x20
|
|
MxS32 m_hasLightSupport; // 0x24
|
|
MxS32 m_use3dSound; // 0x28
|
|
MxS32 m_useMusic; // 0x2c
|
|
MxS32 m_useJoystick; // 0x30
|
|
MxS32 m_joystickIndex; // 0x34
|
|
MxS32 m_wideViewAngle; // 0x38
|
|
MxS32 m_islandQuality; // 0x3c
|
|
MxS32 m_islandTexture; // 0x40
|
|
MxS32 m_gameStarted; // 0x44
|
|
MxLong m_frameDelta; // 0x48
|
|
MxVideoParam m_videoParam; // 0x4c
|
|
MxS32 m_windowActive; // 0x70
|
|
HWND m_windowHandle; // 0x74
|
|
MxS32 m_drawCursor; // 0x78
|
|
SDL_Cursor* m_cursorArrow; // 0x7c
|
|
SDL_Cursor* m_cursorBusy; // 0x80
|
|
SDL_Cursor* m_cursorNo; // 0x84
|
|
SDL_Cursor* m_cursorCurrent; // 0x88
|
|
char* m_mediaPath;
|
|
|
|
char* m_iniPath;
|
|
MxFloat m_maxLod;
|
|
MxU32 m_maxAllowedExtras;
|
|
MxTransitionManager::TransitionType m_transitionType;
|
|
};
|
|
|
|
extern IsleApp* g_isle;
|
|
extern MxS32 g_closed;
|
|
|
|
extern IDirect3DRMMiniwinDevice* GetD3DRMMiniwinDevice();
|
|
|
|
#endif // ISLEAPP_H
|