diff options
-rw-r--r-- | pointsprite.cpp | 24 | ||||
-rw-r--r-- | pointsprite.h | 17 |
2 files changed, 41 insertions, 0 deletions
diff --git a/pointsprite.cpp b/pointsprite.cpp new file mode 100644 index 0000000..85a61b9 --- /dev/null +++ b/pointsprite.cpp @@ -0,0 +1,24 @@ +#include "pointsprite.h" + +#include "SDL/SDL_opengl.h" + +PointSprite::PointSprite(float _size, const Texture& _texture) : texture(_texture) { + size = _size; +} + +void PointSprite::draw(const Vector2& pos) const { + texture.bind(); + glPointSize(size); + + glBegin(GL_POINTS); + glVertex2f(pos.x, pos.y); + glEnd(); +} + +void PointSprite::draw_array(void* ptr, unsigned int coords, unsigned int stride, unsigned int first, unsigned int num) { + texture.bind(); + glPointSize(size); + + glVertexPointer(coords, GL_FLOAT, stride, ptr); + glDrawArrays(GL_POINTS, first, num); +}
\ No newline at end of file diff --git a/pointsprite.h b/pointsprite.h new file mode 100644 index 0000000..65a95d2 --- /dev/null +++ b/pointsprite.h @@ -0,0 +1,17 @@ +#ifndef POINTSPRITE_H +#define POINTSPRITE_H + +#include "texture.h" +#include "vector.h" + +class PointSprite { + public: + PointSprite(float _size, const Texture& _texture); + void draw(const Vector2& pos) const; + void draw_array(void* ptr, unsigned int coords, unsigned int stride, unsigned int first, unsigned int num); + private: + float size; + const Texture& texture; +}; + +#endif |