You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-12 13:20:55 +00:00
Working TileMap tile transpose transform.
This commit is contained in:
@@ -8076,7 +8076,7 @@ void RasterizerGLES2::_draw_gui_primitive2(int p_points, const Vector2 *p_vertic
|
||||
_rinfo.ci_draw_commands++;
|
||||
}
|
||||
|
||||
void RasterizerGLES2::_draw_textured_quad(const Rect2& p_rect, const Rect2& p_src_region, const Size2& p_tex_size,bool p_h_flip, bool p_v_flip ) {
|
||||
void RasterizerGLES2::_draw_textured_quad(const Rect2& p_rect, const Rect2& p_src_region, const Size2& p_tex_size,bool p_h_flip, bool p_v_flip, bool p_transpose ) {
|
||||
|
||||
Vector2 texcoords[4]= {
|
||||
Vector2( p_src_region.pos.x/p_tex_size.width,
|
||||
@@ -8100,6 +8100,9 @@ void RasterizerGLES2::_draw_textured_quad(const Rect2& p_rect, const Rect2& p_sr
|
||||
SWAP( texcoords[1], texcoords[2] );
|
||||
SWAP( texcoords[0], texcoords[3] );
|
||||
}
|
||||
if (p_transpose) {
|
||||
SWAP( texcoords[1], texcoords[3] );
|
||||
}
|
||||
|
||||
Vector2 coords[4]= {
|
||||
Vector2( p_rect.pos.x, p_rect.pos.y ),
|
||||
@@ -8139,11 +8142,11 @@ void RasterizerGLES2::canvas_draw_rect(const Rect2& p_rect, int p_flags, const R
|
||||
if (!(p_flags&CANVAS_RECT_REGION)) {
|
||||
|
||||
Rect2 region = Rect2(0,0,texture->width,texture->height);
|
||||
_draw_textured_quad(p_rect,region,region.size,p_flags&CANVAS_RECT_FLIP_H,p_flags&CANVAS_RECT_FLIP_V);
|
||||
_draw_textured_quad(p_rect,region,region.size,p_flags&CANVAS_RECT_FLIP_H,p_flags&CANVAS_RECT_FLIP_V,p_flags&CANVAS_RECT_TRANSPOSE);
|
||||
|
||||
} else {
|
||||
|
||||
_draw_textured_quad(p_rect, p_source, Size2(texture->width,texture->height),p_flags&CANVAS_RECT_FLIP_H,p_flags&CANVAS_RECT_FLIP_V );
|
||||
_draw_textured_quad(p_rect, p_source, Size2(texture->width,texture->height),p_flags&CANVAS_RECT_FLIP_H,p_flags&CANVAS_RECT_FLIP_V,p_flags&CANVAS_RECT_TRANSPOSE);
|
||||
|
||||
}
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user