summaryrefslogtreecommitdiffstats
path: root/src/Gal.hpp
diff options
context:
space:
mode:
authorLaG1924 <lag1924@gmail.com>2021-11-15 08:55:20 +0100
committerLaG1924 <lag1924@gmail.com>2021-11-15 08:55:20 +0100
commit663821b00ca8440509e0bc6d5022c809c7fe1cff (patch)
treeca1492c89efccf193f1640b7195f4f8a5ced3a39 /src/Gal.hpp
parentAdded ScissorTest to Gal (diff)
downloadAltCraft-663821b00ca8440509e0bc6d5022c809c7fe1cff.tar
AltCraft-663821b00ca8440509e0bc6d5022c809c7fe1cff.tar.gz
AltCraft-663821b00ca8440509e0bc6d5022c809c7fe1cff.tar.bz2
AltCraft-663821b00ca8440509e0bc6d5022c809c7fe1cff.tar.lz
AltCraft-663821b00ca8440509e0bc6d5022c809c7fe1cff.tar.xz
AltCraft-663821b00ca8440509e0bc6d5022c809c7fe1cff.tar.zst
AltCraft-663821b00ca8440509e0bc6d5022c809c7fe1cff.zip
Diffstat (limited to 'src/Gal.hpp')
-rw-r--r--src/Gal.hpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/Gal.hpp b/src/Gal.hpp
index 06850ea..8089fd3 100644
--- a/src/Gal.hpp
+++ b/src/Gal.hpp
@@ -77,9 +77,17 @@ namespace Gal {
Clamp,
};
+ enum class Primitive {
+ Triangle,
+ TriangleStrip,
+ TriangleFan,
+ };
+
struct VertexAttribute {
std::string name;
Type type;
+ size_t count = 1;
+ size_t instances = 0;
};
Impl* GetImplementation();
@@ -165,6 +173,8 @@ namespace Gal {
virtual void SetTarget(std::shared_ptr<Framebuffer> target) = 0;
+ virtual void SetPrimitive(Primitive primitive) = 0;
+
virtual std::shared_ptr<BufferBinding> BindVertexBuffer(std::vector<VertexAttribute> &&bufferLayout) = 0;
virtual std::shared_ptr<BufferBinding> BindIndexBuffer() = 0;
@@ -212,6 +222,8 @@ namespace Gal {
virtual void Activate() = 0;
virtual void Render(size_t offset = 0, size_t count = -1) = 0;
+
+ virtual void SetInstancesCount(size_t count) = 0;
};
struct Framebuffer {