globjects  1.0.0.000000000000
Strict OpenGL objects wrapper.
Loading...
Searching...
No Matches
globjects.h
Go to the documentation of this file.
1
2#pragma once
3
4#include <string>
5#include <array>
6#include <set>
7
8#include <glbinding/gl/types.h>
9
10#include <glbinding/ContextHandle.h>
11
12#include <globjects/globjects_api.h>
13
15#include <globjects/Buffer.h>
18#include <globjects/Program.h>
19#include <globjects/Shader.h>
20#include <globjects/Object.h>
22
23
24namespace glbinding
25{
26
27
28class Version;
29
30
31} // namespace glbinding
32
33
34namespace globjects
35{
36
37
38GLOBJECTS_API void init();
39GLOBJECTS_API void init(glbinding::ContextHandle sharedContextId);
40
46GLOBJECTS_API void detachAllObjects();
47
48template <typename T, typename... Args>
49void init(T strategy, Args... args);
50
51template <typename T, typename... Args>
52void init(glbinding::ContextHandle sharedContextId, T strategy, Args... args);
53
54GLOBJECTS_API void registerCurrentContext();
55GLOBJECTS_API void registerCurrentContext(glbinding::ContextHandle sharedContextId);
56GLOBJECTS_API void setContext(glbinding::ContextHandle contextId);
57GLOBJECTS_API void setCurrentContext();
58
59GLOBJECTS_API std::string getString(gl::GLenum pname);
60GLOBJECTS_API std::string getString(gl::GLenum pname, gl::GLuint index);
61
62GLOBJECTS_API gl::GLint getInteger(gl::GLenum pname);
63GLOBJECTS_API gl::GLenum getEnum(gl::GLenum pname);
64GLOBJECTS_API gl::GLfloat getFloat(gl::GLenum pname);
65GLOBJECTS_API gl::GLdouble getDouble(gl::GLenum pname);
66GLOBJECTS_API gl::GLboolean getBoolean(gl::GLenum pname);
67
68GLOBJECTS_API gl::GLint getInteger(gl::GLenum pname, gl::GLuint index);
69GLOBJECTS_API gl::GLenum getEnum(gl::GLenum pname, gl::GLuint index);
70GLOBJECTS_API gl::GLfloat getFloat(gl::GLenum pname, gl::GLuint index);
71GLOBJECTS_API gl::GLdouble getDouble(gl::GLenum pname, gl::GLuint index);
72GLOBJECTS_API gl::GLboolean getBoolean(gl::GLenum pname, gl::GLuint index);
73
74GLOBJECTS_API std::string vendor();
75GLOBJECTS_API std::string renderer();
76GLOBJECTS_API std::string versionString();
77GLOBJECTS_API glbinding::Version version();
78GLOBJECTS_API bool isCoreProfile();
79
80template <int Count>
81std::array<gl::GLint, Count> getIntegers(gl::GLenum pname);
82template <int Count>
83std::array<gl::GLenum, Count> getEnums(gl::GLenum pname);
84template <int Count>
85std::array<gl::GLfloat, Count> getFloats(gl::GLenum pname);
86template <int Count>
87std::array<gl::GLdouble, Count> getDoubles(gl::GLenum pname);
88template <int Count>
89std::array<gl::GLboolean, Count> getBooleans(gl::GLenum pname);
90
91GLOBJECTS_API const std::set<gl::GLextension> & availableExtensions();
92GLOBJECTS_API const std::set<std::string> & unknownAvailableExtensions();
93
94GLOBJECTS_API bool hasExtension(gl::GLextension extension);
95GLOBJECTS_API bool hasExtension(const std::string & extensionName);
96GLOBJECTS_API bool isInCoreProfile(gl::GLextension extension, const glbinding::Version & version);
97GLOBJECTS_API bool isInCoreProfile(gl::GLextension extension);
98
99GLOBJECTS_API void enable(gl::GLenum capability);
100GLOBJECTS_API void disable(gl::GLenum capability);
101GLOBJECTS_API bool isEnabled(gl::GLenum capability);
102GLOBJECTS_API void setEnabled(gl::GLenum capability, bool enabled);
103GLOBJECTS_API void enable(gl::GLenum capability, int index);
104GLOBJECTS_API void disable(gl::GLenum capability, int index);
105GLOBJECTS_API bool isEnabled(gl::GLenum capability, int index);
106GLOBJECTS_API void setEnabled(gl::GLenum capability, int index, bool enabled);
107
116
117
118} // namespace globjects
119
120
121#include <globjects/globjects.inl>
BindlessImplementation
Definition AbstractUniform.h:40
BindlessImplementation
Definition Buffer.h:39
Implementation
Definition DebugMessage.h:20
BindlessImplementation
Definition Framebuffer.h:50
NameImplementation
Definition Object.h:32
BinaryImplementation
Definition Program.h:86
IncludeImplementation
Definition Shader.h:49
AttributeImplementation
Definition VertexArray.h:26
Definition glbindinglogging.h:12
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()
GLOBJECTS_API void init()
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 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 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)