Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/application/StarRenderer.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/application/StarRenderer.hpp')
-rw-r--r--source/application/StarRenderer.hpp27
1 files changed, 23 insertions, 4 deletions
diff --git a/source/application/StarRenderer.hpp b/source/application/StarRenderer.hpp
index e12590f..908f121 100644
--- a/source/application/StarRenderer.hpp
+++ b/source/application/StarRenderer.hpp
@@ -50,17 +50,35 @@ struct RenderVertex {
float param1;
};
-struct RenderTriangle {
+class RenderTriangle {
+public:
+ RenderTriangle() = default;
+ RenderTriangle(Vec2F posA, Vec2F posB, Vec2F posC, Vec4B color = Vec4B::filled(255), float param1 = 0.0f);
+ RenderTriangle(TexturePtr tex, Vec2F posA, Vec2F uvA, Vec2F posB, Vec2F uvB, Vec2F posC, Vec2F uvC, Vec4B color = Vec4B::filled(255), float param1 = 0.0f);
+
TexturePtr texture;
RenderVertex a, b, c;
};
-struct RenderQuad {
+class RenderQuad {
+public:
+ RenderQuad() = default;
+ RenderQuad(Vec2F posA, Vec2F posB, Vec2F posC, Vec2F posD, Vec4B color = Vec4B::filled(255), float param1 = 0.0f);
+ RenderQuad(TexturePtr tex, Vec2F minScreen, float textureScale = 1.0f, Vec4B color = Vec4B::filled(255), float param1 = 0.0f);
+ RenderQuad(TexturePtr tex, RectF const& screenCoords, Vec4B color = Vec4B::filled(255), float param1 = 0.0f);
+ RenderQuad(TexturePtr tex, Vec2F posA, Vec2F uvA, Vec2F posB, Vec2F uvB, Vec2F posC, Vec2F uvC, Vec2F posD, Vec2F uvD, Vec4B color = Vec4B::filled(255), float param1 = 0.0f);
+ RenderQuad(TexturePtr tex, RenderVertex vA, RenderVertex vB, RenderVertex vC, RenderVertex vD);
+ RenderQuad(RectF const& rect, Vec4B color = Vec4B::filled(255), float param1 = 0.0f);
+
TexturePtr texture;
RenderVertex a, b, c, d;
};
-struct RenderPoly {
+class RenderPoly {
+public:
+ RenderPoly() = default;
+ RenderPoly(List<Vec2F> const& verts, Vec4B color, float param1 = 0.0f);
+
TexturePtr texture;
List<RenderVertex> vertexes;
};
@@ -100,7 +118,7 @@ public:
// Transforms the given primitives into a form suitable for the underlying
// graphics system and stores it for fast replaying.
- virtual void set(List<RenderPrimitive> primitives) = 0;
+ virtual void set(List<RenderPrimitive>& primitives) = 0;
};
typedef Variant<bool, int, float, Vec2F, Vec3F, Vec4F> RenderEffectParameter;
@@ -136,6 +154,7 @@ public:
virtual TextureGroupPtr createTextureGroup(TextureGroupSize size = TextureGroupSize::Medium, TextureFiltering filtering = TextureFiltering::Nearest) = 0;
virtual RenderBufferPtr createRenderBuffer() = 0;
+ virtual List<RenderPrimitive>& immediatePrimitives() = 0;
virtual void render(RenderPrimitive primitive) = 0;
virtual void renderBuffer(RenderBufferPtr const& renderBuffer, Mat3F const& transformation = Mat3F::identity()) = 0;