From 9d2fd0ebfa45700007b5a16a296cd866b272ea9f Mon Sep 17 00:00:00 2001 From: Kp Date: Sat, 3 Sep 2016 17:30:17 +0000 Subject: [PATCH] Fold glScalef calls --- similar/arch/ogl/ogl.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/similar/arch/ogl/ogl.cpp b/similar/arch/ogl/ogl.cpp index 006983e71..2d5c2effe 100644 --- a/similar/arch/ogl/ogl.cpp +++ b/similar/arch/ogl/ogl.cpp @@ -771,7 +771,7 @@ namespace dcx { void g3_draw_sphere(g3s_point &pnt,fix rad, const uint8_t c) { int i; - float scale = (static_cast(grd_curcanv->cv_bitmap.bm_w)/grd_curcanv->cv_bitmap.bm_h); + const float scale = (static_cast(grd_curcanv->cv_bitmap.bm_w)/grd_curcanv->cv_bitmap.bm_h); GLfloat color_array[20*4]; for (i = 0; i < 20*4; i += 4) @@ -785,16 +785,20 @@ void g3_draw_sphere(g3s_point &pnt,fix rad, const uint8_t c) glDisable(GL_CULL_FACE); glPushMatrix(); glTranslatef(f2glf(pnt.p3_vec.x),f2glf(pnt.p3_vec.y),-f2glf(pnt.p3_vec.z)); + GLfloat gl1, gl2; if (scale >= 1) { rad/=scale; - glScalef(f2glf(rad),f2glf(rad*scale),f2glf(rad)); + gl1 = f2glf(rad); + gl2 = f2glf(rad*scale); } else { rad*=scale; - glScalef(f2glf(rad/scale),f2glf(rad),f2glf(rad)); + gl1 = f2glf(rad/scale); + gl2 = f2glf(rad); } + glScalef(gl1, gl2, f2glf(rad)); if(!sphere_va) sphere_va = circle_array_init(20); glEnableClientState(GL_COLOR_ARRAY);