Details | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 1 | pmbaty | 1 | /* |
| 2 | * This file is part of the DXX-Rebirth project <https://www.dxx-rebirth.com/>. |
||
| 3 | * It is copyright by its individual contributors, as recorded in the |
||
| 4 | * project's Git history. See COPYING.txt at the top level for license |
||
| 5 | * terms and a link to the Git history. |
||
| 6 | */ |
||
| 7 | /* prototypes for function calls between files within the OpenGL module */ |
||
| 8 | |||
| 9 | #pragma once |
||
| 10 | |||
| 11 | #include "dxxsconf.h" |
||
| 12 | #if DXX_USE_OGL |
||
| 13 | #include "ogl_init.h" // interface to OpenGL module |
||
| 14 | #include "gr.h" |
||
| 15 | |||
| 16 | #ifdef __cplusplus |
||
| 17 | |||
| 18 | void ogl_init_texture_list_internal(void); |
||
| 19 | void ogl_smash_texture_list_internal(void); |
||
| 20 | |||
| 21 | namespace dcx { |
||
| 22 | extern int linedotscale; |
||
| 23 | |||
| 24 | extern int GL_TEXTURE_2D_enabled; |
||
| 25 | } |
||
| 26 | |||
| 27 | #define OGL_SET_FEATURE_STATE(G,V,F) static_cast<void>(G != V && (G = V, F, 0)) |
||
| 28 | #define OGL_ENABLE(a) OGL_SET_FEATURE_STATE(GL_##a##_enabled, 1, glEnable(GL_##a)) |
||
| 29 | #define OGL_DISABLE(a) OGL_SET_FEATURE_STATE(GL_##a##_enabled, 0, glDisable(GL_##a)) |
||
| 30 | |||
| 31 | //#define OGL_TEXCLAMP() OGL_ENABLE2(GL_texclamp,glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);) |
||
| 32 | //#define OGL_TEXREPEAT() OGL_DISABLE2(GL_texclamp,glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);) |
||
| 33 | //#define OGL_SETSTATE(a,s,f) {if (a ## _state!=s) {f;a ## _state=s;}} |
||
| 34 | //#define OGL_TEXENV(p,m) OGL_SETSTATE(p,m,glTexEnvi(GL_TEXTURE_ENV, p,m)); |
||
| 35 | //#define OGL_TEXPARAM(p,m) OGL_SETSTATE(p,m,glTexParameteri(GL_TEXTURE_2D,p,m)) |
||
| 36 | |||
| 37 | namespace dcx { |
||
| 38 | extern unsigned last_width,last_height; |
||
| 39 | static inline void OGL_VIEWPORT(const unsigned x, const unsigned y, const unsigned w, const unsigned h) |
||
| 40 | { |
||
| 41 | if (w!=last_width || h!=last_height) |
||
| 42 | { |
||
| 43 | last_width = w; |
||
| 44 | last_height = h; |
||
| 45 | glViewport(x,grd_curscreen->sc_canvas.cv_bitmap.bm_h-y-h,w,h); |
||
| 46 | } |
||
| 47 | } |
||
| 48 | |||
| 49 | #ifdef dsx |
||
| 50 | //platform specific funcs |
||
| 51 | void ogl_swap_buffers_internal(); |
||
| 52 | #endif |
||
| 53 | } |
||
| 54 | |||
| 55 | #endif |
||
| 56 | #endif |