globjects  2.0.0.630135941c42
Strict OpenGL objects wrapper.
Loading...
Searching...
No Matches
globjects.h
Go to the documentation of this file.
1
2#pragma once
3
4
5#include <string>
6#include <array>
7#include <set>
8
9#include <glbinding/gl/types.h>
10
11#include <glbinding/ProcAddress.h>
12#include <glbinding/ContextHandle.h>
13
14#include <globjects/globjects_api.h>
15
17#include <globjects/Buffer.h>
20#include <globjects/Program.h>
21#include <globjects/Shader.h>
22#include <globjects/Object.h>
24#include <globjects/Texture.h>
25
26
27namespace glbinding
28{
29
30
31class Version;
32
33
34} // namespace glbinding
35
36
37namespace globjects
38{
39
40
41GLOBJECTS_API void init(glbinding::GetProcAddress functionPointerResolver);
42GLOBJECTS_API void init(glbinding::ContextHandle contextHandle, glbinding::GetProcAddress functionPointerResolver);
43GLOBJECTS_API void init(glbinding::GetProcAddress functionPointerResolver, glbinding::ContextHandle sharedContextId);
44GLOBJECTS_API void init(glbinding::ContextHandle contextHandle, glbinding::GetProcAddress functionPointerResolver, glbinding::ContextHandle sharedContextId);
45
51GLOBJECTS_API void detachAllObjects();
52
53template <typename T, typename... Args>
54void init(glbinding::GetProcAddress functionPointerResolver, T strategy, Args... args);
55
56template <typename T, typename... Args>
57void init(glbinding::ContextHandle contextHandle, glbinding::GetProcAddress functionPointerResolver, T strategy, Args... args);
58
59template <typename T, typename... Args>
60void init(glbinding::GetProcAddress functionPointerResolver, glbinding::ContextHandle sharedContextId, T strategy, Args... args);
61
62template <typename T, typename... Args>
63void init(glbinding::ContextHandle contextHandle, glbinding::GetProcAddress functionPointerResolver, glbinding::ContextHandle sharedContextId, T strategy, Args... args);
64
65GLOBJECTS_API void registerCurrentContext(glbinding::GetProcAddress functionPointerResolver);
66GLOBJECTS_API void registerCurrentContext(glbinding::GetProcAddress functionPointerResolver, glbinding::ContextHandle sharedContextId);
67GLOBJECTS_API void registerContext(glbinding::ContextHandle contextHandle, glbinding::GetProcAddress functionPointerResolver);
68GLOBJECTS_API void registerContext(glbinding::ContextHandle contextHandle, glbinding::GetProcAddress functionPointerResolver, glbinding::ContextHandle sharedContextId);
69GLOBJECTS_API void setContext(glbinding::ContextHandle contextId);
70GLOBJECTS_API void setCurrentContext();
71
72GLOBJECTS_API std::string getString(gl::GLenum pname);
73GLOBJECTS_API std::string getString(gl::GLenum pname, gl::GLuint index);
74
75GLOBJECTS_API gl::GLint getInteger(gl::GLenum pname);
76GLOBJECTS_API gl::GLenum getEnum(gl::GLenum pname);
77GLOBJECTS_API gl::GLfloat getFloat(gl::GLenum pname);
78GLOBJECTS_API gl::GLdouble getDouble(gl::GLenum pname);
79GLOBJECTS_API gl::GLboolean getBoolean(gl::GLenum pname);
80
81GLOBJECTS_API gl::GLint getInteger(gl::GLenum pname, gl::GLuint index);
82GLOBJECTS_API gl::GLenum getEnum(gl::GLenum pname, gl::GLuint index);
83GLOBJECTS_API gl::GLfloat getFloat(gl::GLenum pname, gl::GLuint index);
84GLOBJECTS_API gl::GLdouble getDouble(gl::GLenum pname, gl::GLuint index);
85GLOBJECTS_API gl::GLboolean getBoolean(gl::GLenum pname, gl::GLuint index);
86
87GLOBJECTS_API std::string vendor();
88GLOBJECTS_API std::string renderer();
89GLOBJECTS_API std::string versionString();
90GLOBJECTS_API glbinding::Version version();
91GLOBJECTS_API bool isCoreProfile();
92
93template <int Count>
94std::array<gl::GLint, Count> getIntegers(gl::GLenum pname);
95template <int Count>
96std::array<gl::GLenum, Count> getEnums(gl::GLenum pname);
97template <int Count>
98std::array<gl::GLfloat, Count> getFloats(gl::GLenum pname);
99template <int Count>
100std::array<gl::GLdouble, Count> getDoubles(gl::GLenum pname);
101template <int Count>
102std::array<gl::GLboolean, Count> getBooleans(gl::GLenum pname);
103
104GLOBJECTS_API const std::set<gl::GLextension> & availableExtensions();
105GLOBJECTS_API const std::set<std::string> & unknownAvailableExtensions();
106
107GLOBJECTS_API bool hasExtension(gl::GLextension extension);
108GLOBJECTS_API bool hasExtension(const std::string & extensionName);
109GLOBJECTS_API bool isInCoreProfile(gl::GLextension extension, const glbinding::Version & version);
110GLOBJECTS_API bool isInCoreProfile(gl::GLextension extension);
111
112GLOBJECTS_API void enable(gl::GLenum capability);
113GLOBJECTS_API void disable(gl::GLenum capability);
114GLOBJECTS_API bool isEnabled(gl::GLenum capability);
115GLOBJECTS_API void setEnabled(gl::GLenum capability, bool enabled);
116GLOBJECTS_API void enable(gl::GLenum capability, int index);
117GLOBJECTS_API void disable(gl::GLenum capability, int index);
118GLOBJECTS_API bool isEnabled(gl::GLenum capability, int index);
119GLOBJECTS_API void setEnabled(gl::GLenum capability, int index, bool enabled);
120
130
131GLOBJECTS_API bool compiledWithErrorChecking();
133
134
135} // namespace globjects
136
137
138#include <globjects/globjects.inl>
BindlessImplementation
Definition AbstractUniform.h:46
BindlessImplementation
Definition Buffer.h:41
Implementation
Definition DebugMessage.h:21
BindlessImplementation
Definition Framebuffer.h:57
NameImplementation
Definition Object.h:34
BinaryImplementation
Definition Program.h:90
IncludeImplementation
Definition Shader.h:54
BindlessImplementation
Definition Texture.h:38
AttributeImplementation
Definition VertexArray.h:29
Definition glbindinglogging.h:13
Contains all the classes that wrap OpenGL functionality.
std::array< gl::GLboolean, Count > getBooleans(gl::GLenum pname)
GLOBJECTS_API std::string versionString()
GLOBJECTS_API void registerCurrentContext(glbinding::GetProcAddress functionPointerResolver)
GLOBJECTS_API bool compiledToHandleErrorsAsExceptions()
GLOBJECTS_API gl::GLboolean getBoolean(gl::GLenum pname)
GLOBJECTS_API void setEnabled(gl::GLenum capability, bool enabled)
GLOBJECTS_API gl::GLint getInteger(gl::GLenum pname)
std::array< gl::GLdouble, Count > getDoubles(gl::GLenum pname)
GLOBJECTS_API bool compiledWithErrorChecking()
GLOBJECTS_API void enable(gl::GLenum capability)
GLOBJECTS_API std::string vendor()
GLOBJECTS_API gl::GLdouble getDouble(gl::GLenum pname)
GLOBJECTS_API void disable(gl::GLenum capability)
GLOBJECTS_API void detachAllObjects()
calls detach on every registered object
GLOBJECTS_API std::string renderer()
std::array< gl::GLint, Count > getIntegers(gl::GLenum pname)
GLOBJECTS_API bool isCoreProfile()
GLOBJECTS_API void setCurrentContext()
GLOBJECTS_API bool isInCoreProfile(gl::GLextension extension, const glbinding::Version &version)
GLOBJECTS_API const std::set< std::string > & unknownAvailableExtensions()
GLOBJECTS_API std::string getString(gl::GLenum pname)
GLOBJECTS_API bool isEnabled(gl::GLenum capability)
std::array< gl::GLenum, Count > getEnums(gl::GLenum pname)
GLOBJECTS_API glbinding::Version version()
GLOBJECTS_API gl::GLenum getEnum(gl::GLenum pname)
GLOBJECTS_API bool hasExtension(gl::GLextension extension)
GLOBJECTS_API void registerContext(glbinding::ContextHandle contextHandle, glbinding::GetProcAddress functionPointerResolver)
GLOBJECTS_API void initializeStrategy(AbstractUniform::BindlessImplementation impl)
GLOBJECTS_API void setContext(glbinding::ContextHandle contextId)
GLOBJECTS_API const std::set< gl::GLextension > & availableExtensions()
GLOBJECTS_API gl::GLfloat getFloat(gl::GLenum pname)
std::array< gl::GLfloat, Count > getFloats(gl::GLenum pname)
GLOBJECTS_API void init(glbinding::GetProcAddress functionPointerResolver)