deepstone

diff src/scantmpl.h @ 40:1fa939507d8b

fast floating point->int conversion
author John Tsiombikas <nuclear@member.fsf.org>
date Fri, 15 Sep 2017 05:00:37 +0300
parents 17a5107b6fa4
children
line diff
     1.1 --- a/src/scantmpl.h	Mon Mar 10 17:28:28 2014 +0200
     1.2 +++ b/src/scantmpl.h	Fri Sep 15 05:00:37 2017 +0300
     1.3 @@ -251,7 +251,9 @@
     1.4  #ifdef INTERP_DEPTH
     1.5  		long pix = (sline + x0 + i) - fb->pixels;
     1.6  #ifdef RAST_FLOAT
     1.7 -		unsigned short zval = (unsigned short)(z * USHRT_MAX);
     1.8 +		/*unsigned short zval = (unsigned short)(z * USHRT_MAX);*/
     1.9 +		float zn = z + 1.0;
    1.10 +		unsigned short zval = ((*(long*)&zn) & 0x7fffff) >> 7;
    1.11  #else
    1.12  		unsigned short zval = (unsigned short)((z >> 1) & 0xffff);
    1.13  #endif