jGL
Loading...
Searching...
No Matches
jGL.h
Go to the documentation of this file.
1#ifndef JGL
2#define JGL
3
4#include <memory>
5#include <filesystem>
6
8
9#include <jGL/texture.h>
10#include <jGL/particles.h>
11#include <jGL/spriteRenderer.h>
12#include <jGL/shapeRenderer.h>
13
14#include <glm/glm.hpp>
15#include <glm/gtc/matrix_transform.hpp>
16
17namespace jGL
18{
19
21 {
22
23 public:
24
25 jGLInstance(glm::ivec2 res)
26 : resolution(res), closing(false)
27 {}
28
29 virtual ~jGLInstance() = default;
30
31 virtual void text
32 (
33 std::string characters,
34 glm::vec2 position,
35 float scale,
36 glm::vec4 colour,
37 glm::bvec2 centre = glm::bvec2(false,false)
38 ) = 0;
39
40 virtual void finish(){closing = true;}
41 virtual void beginFrame(){}
42 virtual void endFrame(){}
43
44 virtual void clear() = 0;
45
46 virtual void setClear(glm::vec4 colour) = 0;
47 virtual void setProjection(glm::mat4 proj) = 0;
48 virtual void setTextProjection(glm::mat4 proj) = 0;
49 virtual void setViewport(glm::vec4 view) = 0;
50
51 virtual void setMSAA(uint8_t samples) {msaaSamples = samples;}
52
53 virtual std::shared_ptr<Particles> createParticles(size_t sizeHint) = 0;
54 virtual std::shared_ptr<Texture> createTexture(std::filesystem::path imageFile, Texture::Type type) = 0;
55 virtual std::shared_ptr<Texture> createTexture(std::vector<std::byte> data, Texture::Type type) = 0;
56 virtual std::shared_ptr<SpriteRenderer> createSpriteRenderer(size_t sizeHint) = 0;
57 virtual std::shared_ptr<ShapeRenderer> createShapeRenderer(size_t sizeHint) = 0;
58
59 const bool isClosing() const { return closing; }
60
61 protected:
62
63 glm::ivec2 resolution;
64 uint8_t msaaSamples = 0;
65 bool closing = false;
66
67 };
68}
69
70#endif /* JGL */
Type
Definition texture.h:21
Definition jGL.h:21
virtual void setViewport(glm::vec4 view)=0
virtual void text(std::string characters, glm::vec2 position, float scale, glm::vec4 colour, glm::bvec2 centre=glm::bvec2(false, false))=0
virtual std::shared_ptr< Texture > createTexture(std::vector< std::byte > data, Texture::Type type)=0
virtual void setMSAA(uint8_t samples)
Definition jGL.h:51
virtual ~jGLInstance()=default
bool closing
Definition jGL.h:65
virtual void setClear(glm::vec4 colour)=0
virtual std::shared_ptr< Particles > createParticles(size_t sizeHint)=0
virtual void setTextProjection(glm::mat4 proj)=0
virtual std::shared_ptr< SpriteRenderer > createSpriteRenderer(size_t sizeHint)=0
virtual void clear()=0
glm::ivec2 resolution
Definition jGL.h:63
const bool isClosing() const
Definition jGL.h:59
virtual void finish()
Definition jGL.h:40
jGLInstance(glm::ivec2 res)
Definition jGL.h:25
virtual void setProjection(glm::mat4 proj)=0
virtual void endFrame()
Definition jGL.h:42
virtual std::shared_ptr< Texture > createTexture(std::filesystem::path imageFile, Texture::Type type)=0
virtual std::shared_ptr< ShapeRenderer > createShapeRenderer(size_t sizeHint)=0
uint8_t msaaSamples
Definition jGL.h:64
virtual void beginFrame()
Definition jGL.h:41
A drawable graphic.
Definition id.h:10