FS2_Open
Open source remastering of the Freespace 2 engine
gropengltexture.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) Volition, Inc. 1999. All rights reserved.
3  *
4  * All source code herein is the property of Volition, Inc. You may not sell
5  * or otherwise commercially exploit the source or things you created based on the
6  * source.
7  *
8 */
9 
10 
11 #ifndef _GROPENGLTEXTURE_H
12 #define _GROPENGLTEXTURE_H
13 
14 #include "globalincs/pstypes.h"
15 #include "graphics/gropengl.h"
17 
18 
19 typedef struct tcache_slot_opengl {
23  float u_scale, v_scale;
25  int size;
29 
31  texture_id(0), texture_target(GL_TEXTURE_2D), wrap_mode(GL_REPEAT),
32  u_scale(1.0f), v_scale(1.0f), bitmap_handle(-1), size(0), w(0), h(0),
33  bpp(0), mipmap_levels(0)
34  {
35  }
36 
37  void reset()
38  {
39  texture_id = 0;
40  texture_target = GL_TEXTURE_2D;
41  wrap_mode = GL_REPEAT;
42  u_scale = 1.0f;
43  v_scale = 1.0f;
44  bitmap_handle = -1;
45  size = 0;
46  w = 0;
47  h = 0;
48  bpp = 0;
49  mipmap_levels = 0;
50  }
52 
53 extern int GL_min_texture_width;
55 extern int GL_min_texture_height;
58 extern int GL_mipmap_filter;
60 extern GLenum GL_texture_face;
61 extern GLfloat GL_anisotropy;
62 extern bool GL_rendering_to_texture;
64 
65 void opengl_switch_arb(int unit, int state);
66 void opengl_tcache_init();
67 void opengl_free_texture_slot(int n);
68 void opengl_tcache_flush();
70 void opengl_tcache_frame();
73 void opengl_preload_init();
75 void opengl_kill_render_target(int slot);
76 int opengl_make_render_target(int handle, int slot, int *w, int *h, ubyte *bpp, int *mm_lvl, int flags);
77 int opengl_set_render_target(int slot, int face = -1, int is_static = 0);
78 void gr_opengl_get_bitmap_from_texture(void* data_out, int bitmap_num);
79 int opengl_get_texture(GLenum target, GLenum pixel_format, GLenum data_format, int num_mipmaps, int width, int height, int bytes_per_pixel, void* image_data, int offset);
80 size_t opengl_export_render_target( int slot, int width, int height, int alpha, int num_mipmaps, ubyte *image_data );
83 
84 int gr_opengl_tcache_set(int bitmap_handle, int bitmap_type, float *u_scale, float *v_scale, int stage = 0);
85 int gr_opengl_preload(int bitmap_num, int is_aabitmap);
86 void gr_opengl_set_texture_panning(float u, float v, bool enable);
89 
90 #endif //_GROPENGLTEXTURE_H
unsigned int GLuint
Definition: Gl.h:52
int gr_opengl_preload(int bitmap_num, int is_aabitmap)
GLenum GL_texture_face
GLfloat opengl_get_max_anisotropy()
void opengl_tcache_frame()
void opengl_set_modulate_tex_env()
GLfloat GLfloat GLfloat GLfloat h
Definition: Glext.h:7280
GLuint opengl_get_rtt_framebuffer()
Gets the current RTT framebuffer.
void opengl_set_texture_face(GLenum face=GL_TEXTURE_2D)
void opengl_free_texture_slot(int n)
int opengl_get_texture(GLenum target, GLenum pixel_format, GLenum data_format, int num_mipmaps, int width, int height, int bytes_per_pixel, void *image_data, int offset)
GLclampf f
Definition: Glext.h:7097
enum_h * u
Definition: lua.cpp:12649
void opengl_switch_arb(int unit, int state)
GLenum mode
Definition: Glext.h:5794
GLfloat GL_anisotropy
void opengl_set_texture_target(GLenum target=GL_TEXTURE_2D)
GLint GLsizei width
Definition: Gl.h:1505
GLenum GLuint GLint GLenum face
Definition: Glext.h:6586
GLintptr offset
Definition: Glext.h:5497
#define GL_REPEAT
Definition: Gl.h:957
void opengl_tcache_init()
GLint GL_max_texture_height
GLint GL_supported_texture_units
void gr_opengl_set_texture_addressing(int mode)
int opengl_make_render_target(int handle, int slot, int *w, int *h, ubyte *bpp, int *mm_lvl, int flags)
GLenum GL_texture_target
GLclampd n
Definition: Glext.h:7286
GLint GL_max_texture_width
unsigned char ubyte
Definition: pstypes.h:62
void opengl_tcache_flush()
GLint GL_max_renderbuffer_size
GLbitfield flags
Definition: Glext.h:6722
int opengl_set_render_target(int slot, int face=-1, int is_static=0)
GLboolean enable
Definition: Glext.h:10591
#define GL_TEXTURE_2D
Definition: Gl.h:570
void opengl_kill_render_target(int slot)
GLint GLsizei GLsizei height
Definition: Gl.h:1505
GLubyte GLubyte GLubyte GLubyte w
Definition: Glext.h:5679
struct tcache_slot_opengl tcache_slot_opengl
GLenum target
Definition: Glext.h:6872
unsigned short ushort
Definition: pstypes.h:63
unsigned int GLenum
Definition: Gl.h:43
int GL_min_texture_height
void gr_opengl_set_texture_panning(float u, float v, bool enable)
void opengl_set_additive_tex_env()
void opengl_preload_init()
size_t opengl_export_render_target(int slot, int width, int height, int alpha, int num_mipmaps, ubyte *image_data)
GLclampf GLclampf GLclampf alpha
Definition: Glext.h:5177
void opengl_tcache_shutdown()
int GL_min_texture_width
const GLdouble * v
Definition: Glext.h:5322
bool GL_rendering_to_texture
int GL_mipmap_filter
int GLint
Definition: Gl.h:48
int gr_opengl_tcache_set(int bitmap_handle, int bitmap_type, float *u_scale, float *v_scale, int stage=0)
float GLfloat
Definition: Gl.h:53
void gr_opengl_get_bitmap_from_texture(void *data_out, int bitmap_num)