[Bf-blender-cvs] [7f1e982] temp_viewport_fx_merge: use reciprocals for vertex data conversion
Mike Erwin
noreply at git.blender.org
Wed Apr 1 20:25:24 CEST 2015
Commit: 7f1e982da1fcb1f36889dcdc74fdfbf43150f202
Author: Mike Erwin
Date: Wed Apr 1 13:16:46 2015 -0400
Branches: temp_viewport_fx_merge
https://developer.blender.org/rB7f1e982da1fcb1f36889dcdc74fdfbf43150f202
use reciprocals for vertex data conversion
* is faster than / even on modern CPUs. If we care to inline, speed is
a concern here.
===================================================================
M source/blender/gpu/GPU_immediate.h
===================================================================
diff --git a/source/blender/gpu/GPU_immediate.h b/source/blender/gpu/GPU_immediate.h
index d3160af..c1327ea 100644
--- a/source/blender/gpu/GPU_immediate.h
+++ b/source/blender/gpu/GPU_immediate.h
@@ -655,10 +655,11 @@ BLI_INLINE void gpuMultAlpha(GLfloat factor)
BLI_INLINE void gpuGetColor4fv(GLfloat *color)
{
- color[0] = (GLfloat)(GPU_IMMEDIATE->color[0]) / 255.0f;
- color[1] = (GLfloat)(GPU_IMMEDIATE->color[1]) / 255.0f;
- color[2] = (GLfloat)(GPU_IMMEDIATE->color[2]) / 255.0f;
- color[3] = (GLfloat)(GPU_IMMEDIATE->color[3]) / 255.0f;
+ const float recip = 1.0f / 255.0f;
+ color[0] = (GLfloat)(GPU_IMMEDIATE->color[0]) * recip;
+ color[1] = (GLfloat)(GPU_IMMEDIATE->color[1]) * recip;
+ color[2] = (GLfloat)(GPU_IMMEDIATE->color[2]) * recip;
+ color[3] = (GLfloat)(GPU_IMMEDIATE->color[3]) * recip;
}
BLI_INLINE void gpuGetColor4ubv(GLubyte *color)
@@ -687,9 +688,10 @@ BLI_INLINE void gpuNormal3fv(const GLfloat *v)
BLI_INLINE void gpuNormal3sv(const GLshort *v)
{
- GPU_IMMEDIATE->normal[0] = v[0] / (float)SHRT_MAX;
- GPU_IMMEDIATE->normal[1] = v[1] / (float)SHRT_MAX;
- GPU_IMMEDIATE->normal[2] = v[2] / (float)SHRT_MAX;
+ const float recip = 1.0f / (float)SHRT_MAX;
+ GPU_IMMEDIATE->normal[0] = v[0] * recip;
+ GPU_IMMEDIATE->normal[1] = v[1] * recip;
+ GPU_IMMEDIATE->normal[2] = v[2] * recip;
}
More information about the Bf-blender-cvs
mailing list