summaryrefslogtreecommitdiff
path: root/src/gl/rwgl3impl.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 /src/gl/rwgl3impl.h
downloadlibrw-master.tar.gz
librw-master.zip
Import aap/librw @ masterHEADmaster
Snapshot for re3/reVC vendoring, per @lzcnt. Source: https://github.com/aap/librw (master).
Diffstat (limited to 'src/gl/rwgl3impl.h')
-rw-r--r--src/gl/rwgl3impl.h92
1 files changed, 92 insertions, 0 deletions
diff --git a/src/gl/rwgl3impl.h b/src/gl/rwgl3impl.h
new file mode 100644
index 0000000..9d3be44
--- /dev/null
+++ b/src/gl/rwgl3impl.h
@@ -0,0 +1,92 @@
+namespace rw {
+namespace gl3 {
+
+#ifdef RW_OPENGL
+
+extern uint32 im2DVbo, im2DIbo;
+void openIm2D(void);
+void closeIm2D(void);
+void im2DRenderLine(void *vertices, int32 numVertices,
+ int32 vert1, int32 vert2);
+void im2DRenderTriangle(void *vertices, int32 numVertices,
+ int32 vert1, int32 vert2, int32 vert3);
+void im2DRenderPrimitive(PrimitiveType primType,
+ void *vertices, int32 numVertices);
+void im2DRenderIndexedPrimitive(PrimitiveType primType,
+ void *vertices, int32 numVertices, void *indices, int32 numIndices);
+
+void openIm3D(void);
+void closeIm3D(void);
+void im3DTransform(void *vertices, int32 numVertices, Matrix *world, uint32 flags);
+void im3DRenderPrimitive(PrimitiveType primType);
+void im3DRenderIndexedPrimitive(PrimitiveType primType, void *indices, int32 numIndices);
+void im3DEnd(void);
+
+struct DisplayMode
+{
+#ifdef LIBRW_SDL2
+ SDL_DisplayMode mode;
+#elif defined(LIBRW_SDL3)
+ SDL_DisplayMode mode;
+#elif defined(LIBRW_GLFW)
+ GLFWvidmode mode;
+#else
+ not implemented
+#endif
+ int32 depth;
+ uint32 flags;
+};
+
+struct GlGlobals
+{
+#ifdef LIBRW_SDL2
+ SDL_Window **pWindow;
+ SDL_Window *window;
+ SDL_GLContext glcontext;
+
+ int numDisplays;
+ int currentDisplay;
+#elif defined(LIBRW_SDL3)
+ SDL_Window **pWindow;
+ SDL_Window *window;
+ SDL_GLContext glcontext;
+
+ int numDisplays;
+ int currentDisplay;
+#elif defined(LIBRW_GLFW)
+ GLFWwindow **pWindow;
+ GLFWwindow *window;
+
+ GLFWmonitor *monitor;
+ int numMonitors;
+ int currentMonitor;
+#else
+ not implemented
+#endif
+
+ DisplayMode *modes;
+ int numModes;
+ int currentMode;
+ int presentWidth, presentHeight;
+ int presentOffX, presentOffY;
+
+ // for opening the window
+ int winWidth, winHeight;
+ const char *winTitle;
+ uint32 numSamples;
+};
+
+extern GlGlobals glGlobals;
+#endif
+
+Raster *rasterCreate(Raster *raster);
+uint8 *rasterLock(Raster*, int32 level, int32 lockMode);
+void rasterUnlock(Raster*, int32);
+int32 rasterNumLevels(Raster*);
+bool32 imageFindRasterFormat(Image *img, int32 type,
+ int32 *width, int32 *height, int32 *depth, int32 *format);
+bool32 rasterFromImage(Raster *raster, Image *image);
+Image *rasterToImage(Raster *raster);
+
+}
+}