|
| | Sprite (const ImageData &, double scale, std::optional< std::string_view > filename=std::nullopt, bool mipmap=false) |
| | Creates a Sprite from ImageData and scales it by scale.
|
| |
| | Sprite (const uint8_t *bytes, size_t width, size_t height, bool mipmap=false) |
| | The sprite data is stored as packed RGBA bytes in an array, where the size of the array needs to be calculated as width * height * 4.
|
| |
| | Sprite (const std::string &filename, LoadType loadType=LoadType::NORMAL, bool mipmap=false) |
| |
| | Sprite (const std::string &filename, bool mipmap) |
| |
|
void | step () |
| | Does nothing.
|
| |
|
void | draw () const |
| | Draws the Sprite, centered by default.
|
| |
| void | draw (const Mat3 &modelview, const ShaderProgram *shaderProgram=nullptr) const |
| | Draws the image centered using modelview.
|
| |
|
void | draw (Mat3 modelview, Alpha, const ShaderProgram *shaderProgram=nullptr) const |
| |
| void | draw (Mat3 modelview, Rgba color) const |
| | Draws the sprite but multiplies each pixel's color with color.
|
| |
| void | drawLerped (Mat3 modelview, Rgb color, float red, float green, float blue, Alpha) const |
| | Draws the Sprite with each color channel linearly interpolated towards color.
|
| |
| void | draw (const ShaderProgram *shaderProgram) const |
| | Draws the sprite using the specified shader program.
|
| |
| Batch | batch (const ShaderProgram *shaderProgram=nullptr) const |
| | Allows to draw the Sprite multiple times at different locations in an efficient way.
|
| |
| void | drawScaled (float xfactor, float yfactor, const ShaderProgram *shaderProgram=nullptr) const |
| | Draws the image scaled by xfactor and yfactor
|
| |
| void | drawClipped (float xstart, float xend, float ystart, float yend) const |
| |
|
void | drawClipped (Vec2 start, Vec2 end) const |
| | Draw a cutout of the sprite. drawClipped({0, 0}, {1, 1}) would draw it normally.
|
| |
|
void | drawMesh (const std::vector< Vertex > &vertexes, const ShaderProgram *=nullptr) const |
| | Draws a list of triangles with the sprite's texture on it using the global modelview from jngl::modelview()
|
| |
| void | drawMesh (const Mat3 &modelview, const std::vector< Vertex > &vertexes, const ShaderProgram *shaderProgram=nullptr) const |
| | Draws a list of triangles with the sprite's texture on it, ignores the Sprite's position.
|
| |
|
void | drawMesh (const Mat3 &modelview, const std::vector< Vertex > &vertexes, jngl::Rgba color, const ShaderProgram *=nullptr) const |
| |
|
void | setBytes (const unsigned char *) |
| |
|
Vec2 | getPos () const |
| |
|
void | setPos (double x, double y) |
| |
| template<class Vect > |
| void | setPos (Vect p) |
| |
|
jngl::Vec2 | getCenter () const |
| |
|
void | setCenter (double x, double y) |
| |
| template<class Vect > |
| void | setCenter (Vect c) |
| |
|
double | getLeft () const |
| |
|
void | setLeft (double x) |
| |
|
double | getTop () const |
| |
|
void | setTop (double y) |
| |
|
double | getRight () const |
| |
|
void | setRight (double x) |
| |
|
double | getBottom () const |
| |
|
void | setBottom (double y) |
| |
|
double | getX () const |
| |
|
void | setX (double) |
| |
|
double | getY () const |
| |
|
void | setY (double) |
| |
|
Vec2 | getSize () const |
| |
|
float | getWidth () const |
| |
|
float | getHeight () const |
| |
|
void | drawBoundingBox () const |
| |
|
bool | contains (jngl::Vec2 point) const |
| |
Higher-level representation of an image.
Definition at line 26 of file Sprite.hpp.
Creates a Sprite from ImageData and scales it by scale.
When you want to draw an ImageData that hasn't been scaled, make sure to pass JNGL's scale factor so that it appears as the same size independent of the resolution of the user.
Example:
static std::unique_ptr< ImageData > load(const std::string &filename, double scaleHint=1.)
Passing a filename will load the specified filename.
double getScaleFactor()
Size of one screen pixel in actual pixels.
You may pass a filename, then JNGL will use that as a key for its internal texture cache, meaning that if there's already a file loaded with that name, it won't upload the passed ImageData to the GPU again. There is one texture per filename: once mipmap is true for that name, every later load shares the mipmapped texture.
- Parameters
-
| mipmap | Generate mipmaps so the sprite filters cleanly when drawn smaller than its pixel size. Minification is trilinear. On OpenGL ES 2.0 the image's width and height must both be powers of two. |