Subversion Repositories Games.Descent

Rev

Blame | Last modification | View Log | Download | RSS feed

  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
  57.