Open source Star Ruler 2 source code!
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
#pragma once
|
||||
#include "vec2.h"
|
||||
#include "vec4.h"
|
||||
#include "render/driver.h"
|
||||
#include "render/render_state.h"
|
||||
|
||||
namespace render {
|
||||
|
||||
enum SpriteMode {
|
||||
SM_Horizontal,
|
||||
SM_Vertical,
|
||||
};
|
||||
|
||||
class SpriteSheet {
|
||||
public:
|
||||
static const SpriteSheet* current;
|
||||
static unsigned currentIndex;
|
||||
|
||||
RenderState material;
|
||||
SpriteMode mode;
|
||||
int width, height;
|
||||
int spacing;
|
||||
mutable int perLine;
|
||||
mutable bool dirty;
|
||||
|
||||
unsigned getCount() const;
|
||||
|
||||
SpriteSheet();
|
||||
|
||||
bool isPixelActive(unsigned index, const vec2i& px) const;
|
||||
vec4f getSourceUV(unsigned index) const;
|
||||
recti getSource(unsigned index) const;
|
||||
void getSource(unsigned index, vec2f* out) const;
|
||||
void render(RenderDriver& driver, unsigned index, const vec3d* vertices, const Color* color = 0) const;
|
||||
void render(RenderDriver& driver, unsigned index, recti rectangle, const Color* color = 0, const recti* clip = 0, const render::Shader* shader = 0, double rotation = 0.0) const;
|
||||
};
|
||||
|
||||
class Sprite {
|
||||
public:
|
||||
const SpriteSheet* sheet;
|
||||
const RenderState* mat;
|
||||
unsigned index;
|
||||
Color color;
|
||||
|
||||
Sprite() : sheet(0), mat(0), index(0) {
|
||||
}
|
||||
|
||||
Sprite(const SpriteSheet* Sheet, unsigned Index)
|
||||
: sheet(Sheet), mat(0), index(Index) {
|
||||
}
|
||||
|
||||
Sprite(const RenderState* Material)
|
||||
: sheet(0), mat(Material), index(0) {
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
Reference in New Issue
Block a user