File: gl_extensions.hpp

package info (click to toggle)
python-visual 1%3A5.12-1.1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 7,672 kB
  • ctags: 7,636
  • sloc: cpp: 15,593; sh: 9,615; ansic: 6,631; python: 4,737; makefile: 385
file content (54 lines) | stat: -rw-r--r-- 1,692 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#ifndef VPYTHON_UTIL_GL_EXTENSIONS_HPP
#define VPYTHON_UTIL_GL_EXTENSIONS_HPP
#pragma once

#include "wrap_gl.hpp"

namespace cvisual {

// GL extension functions wrapper - just the functions we currently need
// This could be replaced by a library like GLEW, if it becomes a hassle to maintain.

class gl_extensions {
 public:
	// All extensions will be unavailable until init() is called.
	gl_extensions();

	// Must be initialized and used with the same OpenGL context current
	void init( class display_kernel& d );

	// Extension: ARB_shader_objects
	bool ARB_shader_objects;
	PFNGLCREATEPROGRAMOBJECTARBPROC glCreateProgramObjectARB;
	PFNGLLINKPROGRAMARBPROC			glLinkProgramARB;
	PFNGLUSEPROGRAMOBJECTARBPROC    glUseProgramObjectARB;
	PFNGLCREATESHADEROBJECTARBPROC	glCreateShaderObjectARB;
	PFNGLSHADERSOURCEARBPROC		glShaderSourceARB;
	PFNGLCOMPILESHADERARBPROC		glCompileShaderARB;
	PFNGLATTACHOBJECTARBPROC		glAttachObjectARB;
	PFNGLDELETEOBJECTARBPROC		glDeleteObjectARB;
	PFNGLGETHANDLEARBPROC			glGetHandleARB;
	PFNGLUNIFORM1IARBPROC			glUniform1iARB;
	PFNGLUNIFORMMATRIX4FVARBPROC	glUniformMatrix4fvARB;
	PFNGLUNIFORM4FVARBPROC			glUniform4fvARB;
	PFNGLGETUNIFORMLOCATIONARBPROC	glGetUniformLocationARB;
	PFNGLGETOBJECTPARAMETERIVARBPROC glGetObjectParameterivARB;
	PFNGLGETINFOLOGARBPROC			glGetInfoLogARB;

	// Extension: EXT_texture3D
	bool EXT_texture3D;
	PFNGLTEXIMAGE3DEXTPROC			glTexImage3D;
	PFNGLTEXSUBIMAGE3DEXTPROC		glTexSubImage3D;

	// Extension: ARB_multitexture
	bool ARB_multitexture;
	PFNGLACTIVETEXTUREARBPROC		glActiveTexture;

	// Extension: ARB_point_parameters
	bool ARB_point_parameters;
	PFNGLPOINTPARAMETERFVARBPROC	glPointParameterfvARB;
};

}

#endif