new Tutorial
tutorial with sprite offset, sprite sheet and texture filtering
This commit is contained in:
@@ -13,6 +13,7 @@
|
||||
#include "debug/debug.hpp"
|
||||
#include "renderer/core/2d/sprite/sprite.hpp"
|
||||
#include "renderer/core/texture/renderer_core_texture_buffers.hpp"
|
||||
#include "renderer/3d/pipeline/shared/pipeline_texture_mapping_type.hpp"
|
||||
#include "renderer/core/texture/models/texture.hpp"
|
||||
#include "renderer/renderer_settings.hpp"
|
||||
#include <packet2_utils.h>
|
||||
@@ -30,6 +31,8 @@ class RendererCore2D {
|
||||
void render(const Sprite& sprite,
|
||||
const RendererCoreTextureBuffers& texBuffers, Texture* texture);
|
||||
|
||||
void setTextureMappingType(const PipelineTextureMappingType textureMappingType);
|
||||
|
||||
private:
|
||||
void setPrim();
|
||||
void setLod();
|
||||
|
||||
@@ -24,7 +24,7 @@ class Sprite {
|
||||
~Sprite();
|
||||
|
||||
u32 id;
|
||||
Vec2 position, size;
|
||||
Vec2 position, size, offset;
|
||||
float scale;
|
||||
Color color;
|
||||
SpriteMode mode;
|
||||
|
||||
@@ -84,10 +84,10 @@ void RendererCore2D::render(const Sprite& sprite,
|
||||
else if (sizeY > sizeX)
|
||||
texS = texMax / (sizeY / sizeX);
|
||||
|
||||
rect->t0.s = sprite.flipHorizontal ? texS : 0.0F;
|
||||
rect->t0.t = sprite.flipVertical ? texT : 0.0F;
|
||||
rect->t1.s = sprite.flipHorizontal ? 0.0F : texS;
|
||||
rect->t1.t = sprite.flipVertical ? 0.0F : texT;
|
||||
rect->t0.s = sprite.flipHorizontal ? (texS+sprite.offset.x) : sprite.offset.x;
|
||||
rect->t0.t = sprite.flipVertical ? (texT+sprite.offset.y) : sprite.offset.y;
|
||||
rect->t1.s = sprite.flipHorizontal ? sprite.offset.x : (texS+sprite.offset.x);
|
||||
rect->t1.t = sprite.flipVertical ? sprite.offset.y : (texT+sprite.offset.y);
|
||||
|
||||
rect->color.r = sprite.color.r;
|
||||
rect->color.g = sprite.color.g;
|
||||
@@ -131,4 +131,9 @@ void RendererCore2D::render(const Sprite& sprite,
|
||||
context = !context;
|
||||
}
|
||||
|
||||
void RendererCore2D::setTextureMappingType(const PipelineTextureMappingType textureMappingType){
|
||||
lod.mag_filter = textureMappingType;
|
||||
lod.min_filter = textureMappingType;
|
||||
}
|
||||
|
||||
} // namespace Tyra
|
||||
|
||||
@@ -18,6 +18,7 @@ Sprite::Sprite() {
|
||||
flipVertical = false;
|
||||
size.set(32.0F, 32.0F);
|
||||
position.set(100.0F, 100.0F);
|
||||
offset.set(0.0F,0.0F);
|
||||
scale = 1.0F;
|
||||
mode = MODE_REPEAT;
|
||||
setDefaultColor();
|
||||
|
||||
Reference in New Issue
Block a user