diff options
Diffstat (limited to 'source/application/StarRenderer.hpp')
-rw-r--r-- | source/application/StarRenderer.hpp | 27 |
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; |