1#ifndef OPENGLINSTANCE_H
2#define OPENGLINSTANCE_H
37 if (glIsBuffer(rbo)) { glDeleteRenderbuffers(1, &rbo); }
48 std::string characters,
52 glm::bvec2 centre = glm::bvec2(
false,
false)
58 glClearColor(clearColour.r, clearColour.g, clearColour.b, clearColour.a);
59 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
67 glGetIntegerv(GL_MAX_SAMPLES, &maxSamples);
69 if (samples > maxSamples){samples = maxSamples;}
75 if (glIsBuffer(rbo)) { glDeleteRenderbuffers(1, &rbo); }
76 glGenRenderbuffers(1, &rbo);
77 glBindRenderbuffer(GL_RENDERBUFFER, rbo);
79 glBindRenderbuffer(GL_RENDERBUFFER, 0);
80 glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT, GL_RENDERBUFFER, rbo);
92 void setClear(glm::vec4 colour) { clearColour = colour; }
95 void setViewport(glm::vec4 view) { glViewport(view.x, view.y, view.z, view.w); }
99 return std::static_pointer_cast<Particles>(std::make_shared<glParticles>(sizeHint));
107 return std::static_pointer_cast<Texture>(std::make_shared<glTexture2DRGB>(imageFile));
109 return std::static_pointer_cast<Texture>(std::make_shared<glTexture2DRGBA>(imageFile));
111 return std::static_pointer_cast<Texture>(std::make_shared<glTexture2DRGB>(imageFile));
120 return std::static_pointer_cast<Texture>(std::make_shared<glTexture2DRGB>(data));
122 return std::static_pointer_cast<Texture>(std::make_shared<glTexture2DRGBA>(data));
124 return std::static_pointer_cast<Texture>(std::make_shared<glTexture2DRGB>(data));
130 return std::static_pointer_cast<SpriteRenderer>
132 std::make_shared<glSpriteRenderer>
141 return std::static_pointer_cast<ShapeRenderer>
143 std::make_shared<glShapeRenderer>
158 glm::vec4 clearColour = glm::vec4(1.0f, 1.0f, 1.0f, 1.0f);
Definition openGLInstance.h:18
void clear()
Definition openGLInstance.h:55
~OpenGLInstance()
Definition openGLInstance.h:35
std::shared_ptr< SpriteRenderer > createSpriteRenderer(size_t sizeHint)
Definition openGLInstance.h:128
std::shared_ptr< ShapeRenderer > createShapeRenderer(size_t sizeHint)
Definition openGLInstance.h:139
std::shared_ptr< Texture > createTexture(std::filesystem::path imageFile, Texture::Type type)
Definition openGLInstance.h:102
void setClear(glm::vec4 colour)
Definition openGLInstance.h:92
void setTextProjection(glm::mat4 proj)
Definition openGLInstance.h:94
void finish()
Definition openGLInstance.h:44
void setMSAA(uint8_t samples)
Definition openGLInstance.h:63
std::shared_ptr< Particles > createParticles(size_t sizeHint)
Definition openGLInstance.h:97
void endFrame()
Definition openGLInstance.h:42
void setProjection(glm::mat4 proj)
Definition openGLInstance.h:93
void beginFrame()
Definition openGLInstance.h:41
void text(std::string characters, glm::vec2 position, float scale, glm::vec4 colour, glm::bvec2 centre=glm::bvec2(false, false))
Definition openGLInstance.cpp:7
OpenGLInstance(glm::ivec2 res, uint8_t msaa=0)
Definition openGLInstance.h:22
void setViewport(glm::vec4 view)
Definition openGLInstance.h:95
void setResolution(glm::ivec2 wh)
Definition openGLInstance.h:83
std::shared_ptr< Texture > createTexture(std::vector< std::byte > data, Texture::Type type)
Definition openGLInstance.h:115
Definition glTextRenderer.h:15
void setProjection(glm::mat4 p)
Definition glTextRenderer.h:38
void clear()
Definition glTextRenderer.h:48
Definition glDrawFramebuffer.h:13
void bind()
Definition glDrawFramebuffer.h:43
void setMSAA(uint8_t samples)
Definition glDrawFramebuffer.h:80
void destroy()
Definition glDrawFramebuffer.h:30
void setResolution(glm::vec2 res)
Definition glDrawFramebuffer.h:74
void blit()
Definition glDrawFramebuffer.h:53
void setClear(glm::vec4 c)
Definition glDrawFramebuffer.h:66
Type
Definition texture.h:21
bool closing
Definition jGL.h:66
glm::ivec2 resolution
Definition jGL.h:64
uint8_t msaaSamples
Definition jGL.h:65