summaryrefslogtreecommitdiff
path: root/skeleton/skeleton.h
diff options
context:
space:
mode:
authorclaude-bot <[email protected]>2026-07-13 12:40:03 +0000
committerclaude-bot <[email protected]>2026-07-13 12:40:03 +0000
commit847962910f0bff071f3bf07c9abb87764fb6cac3 (patch)
treeddcd429e134c7fd5f72ddc97ced175de8d66fcd0 /skeleton/skeleton.h
downloadlibrw-847962910f0bff071f3bf07c9abb87764fb6cac3.tar.gz
librw-847962910f0bff071f3bf07c9abb87764fb6cac3.zip
Import aap/librw @ masterHEADmaster
Snapshot for re3/reVC vendoring, per @lzcnt. Source: https://github.com/aap/librw (master).
Diffstat (limited to 'skeleton/skeleton.h')
-rw-r--r--skeleton/skeleton.h122
1 files changed, 122 insertions, 0 deletions
diff --git a/skeleton/skeleton.h b/skeleton/skeleton.h
new file mode 100644
index 0000000..a4d14f7
--- /dev/null
+++ b/skeleton/skeleton.h
@@ -0,0 +1,122 @@
+extern rw::EngineOpenParams engineOpenParams;
+
+namespace sk {
+
+using namespace rw;
+
+// same as RW skeleton
+enum Key
+{
+ // ascii...
+
+ KEY_ESC = 128,
+
+ KEY_F1 = 129,
+ KEY_F2 = 130,
+ KEY_F3 = 131,
+ KEY_F4 = 132,
+ KEY_F5 = 133,
+ KEY_F6 = 134,
+ KEY_F7 = 135,
+ KEY_F8 = 136,
+ KEY_F9 = 137,
+ KEY_F10 = 138,
+ KEY_F11 = 139,
+ KEY_F12 = 140,
+
+ KEY_INS = 141,
+ KEY_DEL = 142,
+ KEY_HOME = 143,
+ KEY_END = 144,
+ KEY_PGUP = 145,
+ KEY_PGDN = 146,
+
+ KEY_UP = 147,
+ KEY_DOWN = 148,
+ KEY_LEFT = 149,
+ KEY_RIGHT = 150,
+
+ // some stuff ommitted
+
+ KEY_BACKSP = 168,
+ KEY_TAB = 169,
+ KEY_CAPSLK = 170,
+ KEY_ENTER = 171,
+ KEY_LSHIFT = 172,
+ KEY_RSHIFT = 173,
+ KEY_LCTRL = 174,
+ KEY_RCTRL = 175,
+ KEY_LALT = 176,
+ KEY_RALT = 177,
+
+ KEY_NULL, // unused
+ KEY_NUMKEYS,
+};
+
+enum EventStatus
+{
+ EVENTERROR,
+ EVENTPROCESSED,
+ EVENTNOTPROCESSED
+};
+
+enum Event
+{
+ INITIALIZE,
+ RWINITIALIZE,
+ RWTERMINATE,
+ SELECTDEVICE,
+ PLUGINATTACH,
+ KEYDOWN,
+ KEYUP,
+ CHARINPUT,
+ MOUSEMOVE,
+ MOUSEBTN,
+ MOUSEWHEEL,
+ RESIZE,
+ IDLE,
+ QUIT
+};
+
+struct Globals
+{
+ const char *windowtitle;
+ int32 width;
+ int32 height;
+ bool32 quit;
+};
+extern Globals globals;
+
+// Argument to mouse events
+struct MouseState
+{
+ int posx, posy;
+ int buttons; // bits 0-2 are left, middle, right button down
+ float wheelDelta;
+};
+
+struct Args
+{
+ int argc;
+ char **argv;
+};
+extern Args args;
+
+bool InitRW(void);
+void TerminateRW(void);
+Camera *CameraCreate(int32 width, int32 height, bool32 z);
+void CameraDestroy(rw::Camera *cam);
+void CameraSize(Camera *cam, Rect *r, float viewWindow = 0.0f, float aspectRatio = 0.0f);
+void CameraMove(Camera *cam, V3d *delta);
+void CameraPan(Camera *cam, V3d *pos, float angle);
+void CameraTilt(Camera *cam, V3d *pos, float angle);
+void CameraRotate(Camera *cam, V3d *pos, float angle);
+void SetMousePosition(int x, int y);
+EventStatus EventHandler(Event e, void *param);
+
+}
+
+sk::EventStatus AppEventHandler(sk::Event e, void *param);
+
+#include "imgui/imgui.h"
+#include "imgui/imgui_impl_rw.h"