]> git.tdb.fi Git - libs/gl.git/commitdiff
Remove immediate mode emulation
authorMikko Rasa <tdb@tdb.fi>
Mon, 28 Oct 2019 13:42:20 +0000 (15:42 +0200)
committerMikko Rasa <tdb@tdb.fi>
Mon, 28 Oct 2019 13:42:20 +0000 (15:42 +0200)
It's not very useful anymore and starting to get in the way of other
things.

source/font.cpp
source/font.h
source/immediate.cpp [deleted file]
source/immediate.h [deleted file]

index 623f1ebebda04df2e97909b66c51416602e694a6..5990c57d7223771410edadcfb69a9df13ea39fe0 100644 (file)
@@ -3,8 +3,7 @@
 #include "bindable.h"
 #include "gl.h"
 #include "font.h"
-#include "immediate.h"
-#include "primitivetype.h"
+#include "primitivebuilder.h"
 #include "texture2d.h"
 
 using namespace std;
@@ -64,14 +63,6 @@ float Font::get_string_width(const string &str, StringCodec::Decoder &dec) const
        return x;
 }
 
-void Font::draw_string(const string &str, StringCodec::Decoder &dec, const Color &color) const
-{
-       BindRestore bind_tex(get_texture());
-       Immediate imm((TEXCOORD2, COLOR4_UBYTE, VERTEX2));
-       imm.color(color);
-       build_string(str, dec, imm);
-}
-
 void Font::build_string(const string &str, StringCodec::Decoder &dec, PrimitiveBuilder &bld) const
 {
        VertexBuilder::PushMatrix push_mtx(bld);
index a4fc71ae4fa6836a1bac48295325ff3763738ed4..9f040dc99d0e45cc5ffdec41153dfc71e5149778 100644 (file)
@@ -105,20 +105,6 @@ public:
        float get_string_width(const std::string &str) const
        { return get_string_width<StringCodec::Utf8>(str); }
 
-       /** Draws a string to the framebuffer with Immediate.  It is drawn with size
-       1.0; set up matrices for the desired size before the call. */
-       void draw_string(const std::string &, StringCodec::Decoder &, const Color & = Color()) const;
-
-       template<class C>
-       void draw_string(const std::string &str, const Color &color = Color()) const
-       {
-               typename C::Decoder dec;
-               draw_string(str, dec, color);
-       }
-
-       void draw_string(const std::string &str, const Color &color = Color()) const
-       { draw_string<StringCodec::Utf8>(str, color); }
-
        /** Builds the primitives for a string.  Two-dimensional vertex and texture
        coordinates are generated.  Size 1.0 is used for building; set up the
        builder's matrix before the call.  The texture is not bound, to avoid
diff --git a/source/immediate.cpp b/source/immediate.cpp
deleted file mode 100644 (file)
index cf1be08..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-#include "batch.h"
-#include "error.h"
-#include "immediate.h"
-
-namespace Msp {
-namespace GL {
-
-Immediate::Immediate(VertexFormat f):
-       PrimitiveBuilder(array),
-       array(f)
-{
-       array.use_buffer(0);
-}
-
-void Immediate::reset()
-{
-       if(in_batch)
-               throw invalid_operation("Immediate::reset");
-
-       array.clear();
-}
-
-void Immediate::begin_()
-{
-       indices.clear();
-}
-
-void Immediate::end_()
-{
-       Batch batch(type);
-       batch.append(indices);
-       array.apply();
-       batch.draw();
-}
-
-void Immediate::element_(unsigned i)
-{
-       indices.push_back(i);
-}
-
-} // namespace GL
-} // namespace Msp
diff --git a/source/immediate.h b/source/immediate.h
deleted file mode 100644 (file)
index 40e25cd..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef MSP_GL_IMMEDIATE_H_
-#define MSP_GL_IMMEDIATE_H_
-
-#include "primitivebuilder.h"
-
-namespace Msp {
-namespace GL {
-
-/**
-Draws primitives on the screen.  This works similarly to the OpenGL immediate
-mode: call begin() to start a batch of primitives, specify vertices, and call
-end() to terminate the batch.  However, unlike OpenGL immediate mode, vertices
-are not drawn as they are specified.  Instead, they are accumulated in a
-VertexArray and drawn when end() is called.
-*/
-class Immediate: public PrimitiveBuilder
-{
-private:
-       VertexArray array;
-       std::vector<unsigned> indices;
-
-public:
-       Immediate(VertexFormat);
-       void reset();
-private:
-       virtual void begin_();
-       virtual void end_();
-       virtual void element_(unsigned);
-};
-
-} // namespace GL
-} // namespace Msp
-
-#endif