* clutter/cogl/gl/cogl-texture.c (cogl_texture_polygon): Fix the
equation for calculating texture coordinates when using sliced textures. This became broken in revision 3520.
This commit is contained in:
parent
d741f67cfc
commit
50b6ecc56d
@ -2224,7 +2224,7 @@ cogl_texture_polygon (CoglHandle handle,
|
|||||||
gboolean use_color)
|
gboolean use_color)
|
||||||
{
|
{
|
||||||
CoglTexture *tex;
|
CoglTexture *tex;
|
||||||
int i, x, y;
|
int i, x, y, tex_num;
|
||||||
GLuint gl_handle;
|
GLuint gl_handle;
|
||||||
CoglTexSliceSpan *y_span, *x_span;
|
CoglTexSliceSpan *y_span, *x_span;
|
||||||
gulong enable_flags;
|
gulong enable_flags;
|
||||||
@ -2314,7 +2314,7 @@ cogl_texture_polygon (CoglHandle handle,
|
|||||||
GL_CLAMP_TO_BORDER) );
|
GL_CLAMP_TO_BORDER) );
|
||||||
}
|
}
|
||||||
|
|
||||||
i = 0;
|
tex_num = 0;
|
||||||
|
|
||||||
/* Render all of the slices with the full geometry but use a
|
/* Render all of the slices with the full geometry but use a
|
||||||
transparent border color so that any part of the texture not
|
transparent border color so that any part of the texture not
|
||||||
@ -2327,7 +2327,7 @@ cogl_texture_polygon (CoglHandle handle,
|
|||||||
{
|
{
|
||||||
x_span = &g_array_index (tex->slice_x_spans, CoglTexSliceSpan, x);
|
x_span = &g_array_index (tex->slice_x_spans, CoglTexSliceSpan, x);
|
||||||
|
|
||||||
gl_handle = g_array_index (tex->slice_gl_handles, GLuint, i++);
|
gl_handle = g_array_index (tex->slice_gl_handles, GLuint, tex_num++);
|
||||||
|
|
||||||
/* Convert the vertices into an array of GLfloats ready to pass to
|
/* Convert the vertices into an array of GLfloats ready to pass to
|
||||||
OpenGL */
|
OpenGL */
|
||||||
@ -2338,10 +2338,14 @@ cogl_texture_polygon (CoglHandle handle,
|
|||||||
p->v[0] = CFX_F(vertices[i].x);
|
p->v[0] = CFX_F(vertices[i].x);
|
||||||
p->v[1] = CFX_F(vertices[i].y);
|
p->v[1] = CFX_F(vertices[i].y);
|
||||||
p->v[2] = CFX_F(vertices[i].z);
|
p->v[2] = CFX_F(vertices[i].z);
|
||||||
p->t[0] = CFX_F(vertices[i].tx
|
p->t[0] = CFX_F((vertices[i].tx
|
||||||
* (x_span->size - x_span->waste) / x_span->size);
|
- (COGL_FIXED_FROM_INT (x_span->start)
|
||||||
p->t[1] = CFX_F(vertices[i].ty
|
/ tex->bitmap.width))
|
||||||
* (y_span->size - y_span->waste) / y_span->size);
|
* tex->bitmap.width / x_span->size);
|
||||||
|
p->t[1] = CFX_F((vertices[i].ty
|
||||||
|
- (COGL_FIXED_FROM_INT (y_span->start)
|
||||||
|
/ tex->bitmap.height))
|
||||||
|
* tex->bitmap.height / y_span->size);
|
||||||
p->c[0] = cogl_color_get_red_byte(&vertices[i].color);
|
p->c[0] = cogl_color_get_red_byte(&vertices[i].color);
|
||||||
p->c[1] = cogl_color_get_green_byte(&vertices[i].color);
|
p->c[1] = cogl_color_get_green_byte(&vertices[i].color);
|
||||||
p->c[2] = cogl_color_get_blue_byte(&vertices[i].color);
|
p->c[2] = cogl_color_get_blue_byte(&vertices[i].color);
|
||||||
|
Loading…
Reference in New Issue
Block a user