OpenGL: image drawing tweaks
- no need to allocate client memory up front - delete unneeded GL calls - set default alpha test function on exit
This commit is contained in:
@@ -351,8 +351,6 @@ static int get_cached_work_texture(int *r_w, int *r_h)
|
||||
static int tex_h = 256;
|
||||
|
||||
if (texid == -1) {
|
||||
unsigned char *tbuf;
|
||||
|
||||
glGenTextures(1, (GLuint *)&texid);
|
||||
|
||||
glBindTexture(GL_TEXTURE_2D, texid);
|
||||
@@ -360,9 +358,7 @@ static int get_cached_work_texture(int *r_w, int *r_h)
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||
|
||||
tbuf = MEM_callocN(tex_w * tex_h * 4, "tbuf");
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, tex_w, tex_h, 0, GL_RGBA, GL_UNSIGNED_BYTE, tbuf);
|
||||
MEM_freeN(tbuf);
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, tex_w, tex_h, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
|
||||
|
||||
glBindTexture(GL_TEXTURE_2D, 0);
|
||||
}
|
||||
|
||||
@@ -663,13 +663,12 @@ static void draw_empty_image(Object *ob, const short dflag, const unsigned char
|
||||
|
||||
/* Draw the Image on the screen */
|
||||
glaDrawPixelsTex(ofs_x, ofs_y, ima_x, ima_y, GL_RGBA, GL_UNSIGNED_BYTE, zoomfilter, ibuf->rect);
|
||||
glPixelTransferf(GL_ALPHA_SCALE, 1.0f);
|
||||
|
||||
glDisable(GL_BLEND);
|
||||
|
||||
if (use_clip) {
|
||||
glDisable(GL_ALPHA_TEST);
|
||||
glAlphaFunc(GL_GREATER, 0.0f);
|
||||
glAlphaFunc(GL_ALWAYS, 0.0f);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -686,7 +685,6 @@ static void draw_empty_image(Object *ob, const short dflag, const unsigned char
|
||||
glEnd();
|
||||
|
||||
/* Reset GL settings */
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glPopMatrix();
|
||||
|
||||
BKE_image_release_ibuf(ima, ibuf, NULL);
|
||||
|
||||
Reference in New Issue
Block a user