mirror of
https://github.com/ptitSeb/Serious-Engine
synced 2024-11-23 02:40:26 +01:00
Unstubbed the Portable C functions of LayerMixer
This commit is contained in:
parent
af9d472619
commit
8dd48b5cd8
|
@ -451,8 +451,8 @@ skipPixel:
|
||||||
|
|
||||||
// !!! FIXME WARNING: I have not checked this code, and it could be
|
// !!! FIXME WARNING: I have not checked this code, and it could be
|
||||||
// !!! FIXME totally and utterly wrong. --ryan.
|
// !!! FIXME totally and utterly wrong. --ryan.
|
||||||
STUBBED("may not work");
|
// STUBBED("may not work");
|
||||||
|
UBYTE* pubLayer = (UBYTE*)_pulLayer;
|
||||||
for( PIX pixV=0; pixV<_iRowCt; pixV++)
|
for( PIX pixV=0; pixV<_iRowCt; pixV++)
|
||||||
{
|
{
|
||||||
SLONG slL2Point = _slL2Row;
|
SLONG slL2Point = _slL2Row;
|
||||||
|
@ -466,15 +466,15 @@ skipPixel:
|
||||||
slL = aubSqrt[slL];
|
slL = aubSqrt[slL];
|
||||||
if( slL>_slHotSpot) slIntensity = ((255-slL)*_slLightStep)>>8;
|
if( slL>_slHotSpot) slIntensity = ((255-slL)*_slLightStep)>>8;
|
||||||
// add the intensity to the pixel
|
// add the intensity to the pixel
|
||||||
AddToCluster( (UBYTE*)_pulLayer, slIntensity/255.0f);
|
AddToCluster( pubLayer, slIntensity/255.0f);
|
||||||
}
|
}
|
||||||
// go to the next pixel
|
// go to the next pixel
|
||||||
_pulLayer++;
|
pubLayer+=4;
|
||||||
slL2Point += slDL2oDU;
|
slL2Point += slDL2oDU;
|
||||||
slDL2oDU += _slDDL2oDU;
|
slDL2oDU += _slDDL2oDU;
|
||||||
}
|
}
|
||||||
// go to the next row
|
// go to the next row
|
||||||
_pulLayer += _slModulo/BYTES_PER_TEXEL;
|
pubLayer += _slModulo;
|
||||||
_slL2Row += _slDL2oDV;
|
_slL2Row += _slDL2oDV;
|
||||||
_slDL2oDV += _slDDL2oDV;
|
_slDL2oDV += _slDDL2oDV;
|
||||||
_slDL2oDURow += _slDDL2oDUoDV;
|
_slDL2oDURow += _slDDL2oDUoDV;
|
||||||
|
@ -670,6 +670,7 @@ skipPixel:
|
||||||
|
|
||||||
#else // Portable C version...
|
#else // Portable C version...
|
||||||
|
|
||||||
|
UBYTE* pubLayer = (UBYTE*)_pulLayer;
|
||||||
for( PIX pixV=0; pixV<_iRowCt; pixV++)
|
for( PIX pixV=0; pixV<_iRowCt; pixV++)
|
||||||
{
|
{
|
||||||
SLONG slL2Point = _slL2Row;
|
SLONG slL2Point = _slL2Row;
|
||||||
|
@ -683,10 +684,10 @@ skipPixel:
|
||||||
slL = aubSqrt[slL];
|
slL = aubSqrt[slL];
|
||||||
if( slL>_slHotSpot) slIntensity = ((255-slL)*_slLightStep)>>8;
|
if( slL>_slHotSpot) slIntensity = ((255-slL)*_slLightStep)>>8;
|
||||||
// add the intensity to the pixel
|
// add the intensity to the pixel
|
||||||
AddToCluster( (UBYTE*)_pulLayer, slIntensity/255.0f);
|
AddToCluster( pubLayer, slIntensity/255.0f);
|
||||||
}
|
}
|
||||||
// go to the next pixel
|
// go to the next pixel
|
||||||
_pulLayer++;
|
pubLayer+=4;
|
||||||
slL2Point += slDL2oDU;
|
slL2Point += slDL2oDU;
|
||||||
slDL2oDU += _slDDL2oDU;
|
slDL2oDU += _slDDL2oDU;
|
||||||
ubMask<<=1;
|
ubMask<<=1;
|
||||||
|
@ -696,7 +697,7 @@ skipPixel:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// go to the next row
|
// go to the next row
|
||||||
_pulLayer += _slModulo/BYTES_PER_TEXEL;
|
pubLayer += _slModulo;
|
||||||
_slL2Row += _slDL2oDV;
|
_slL2Row += _slDL2oDV;
|
||||||
_slDL2oDV += _slDDL2oDV;
|
_slDL2oDV += _slDDL2oDV;
|
||||||
_slDL2oDURow += _slDDL2oDUoDV;
|
_slDL2oDURow += _slDDL2oDUoDV;
|
||||||
|
@ -885,7 +886,34 @@ skipPixel:
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#else
|
#else
|
||||||
STUBBED("Some layer junk");
|
// for each pixel in the shadow map
|
||||||
|
UBYTE* pubLayer = (UBYTE*)_pulLayer;
|
||||||
|
for( PIX pixV=0; pixV<_iRowCt; pixV++)
|
||||||
|
{
|
||||||
|
SLONG slL2Point = _slL2Row;
|
||||||
|
SLONG slDL2oDU = _slDL2oDURow;
|
||||||
|
for( PIX pixU=0; pixU<_iPixCt; pixU++)
|
||||||
|
{
|
||||||
|
// if the point is not masked
|
||||||
|
if(slL2Point<FTOX) {
|
||||||
|
SLONG sl1oL = (slL2Point>>SHIFTX)&(SQRTTABLESIZE-1); // and is just for degenerate cases
|
||||||
|
sl1oL = auw1oSqrt[sl1oL];
|
||||||
|
SLONG slIntensity = _slLightMax;
|
||||||
|
if( sl1oL<slMax1oL) slIntensity = ((sl1oL-256)*_slLightStep)>>16;
|
||||||
|
// add the intensity to the pixel
|
||||||
|
AddToCluster( pubLayer, slIntensity/255.0f);
|
||||||
|
}
|
||||||
|
// advance to next pixel
|
||||||
|
pubLayer+=4;
|
||||||
|
slL2Point += slDL2oDU;
|
||||||
|
slDL2oDU += _slDDL2oDU;
|
||||||
|
}
|
||||||
|
// advance to next row
|
||||||
|
pubLayer += _slModulo;
|
||||||
|
_slL2Row += _slDL2oDV;
|
||||||
|
_slDL2oDV += _slDDL2oDV;
|
||||||
|
_slDL2oDURow += _slDDL2oDUoDV;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1079,6 +1107,7 @@ skipPixel:
|
||||||
#else
|
#else
|
||||||
|
|
||||||
// for each pixel in the shadow map
|
// for each pixel in the shadow map
|
||||||
|
UBYTE* pubLayer = (UBYTE*)_pulLayer;
|
||||||
for( PIX pixV=0; pixV<_iRowCt; pixV++)
|
for( PIX pixV=0; pixV<_iRowCt; pixV++)
|
||||||
{
|
{
|
||||||
SLONG slL2Point = _slL2Row;
|
SLONG slL2Point = _slL2Row;
|
||||||
|
@ -1092,10 +1121,10 @@ skipPixel:
|
||||||
SLONG slIntensity = _slLightMax;
|
SLONG slIntensity = _slLightMax;
|
||||||
if( sl1oL<slMax1oL) slIntensity = ((sl1oL-256)*_slLightStep)>>16;
|
if( sl1oL<slMax1oL) slIntensity = ((sl1oL-256)*_slLightStep)>>16;
|
||||||
// add the intensity to the pixel
|
// add the intensity to the pixel
|
||||||
AddToCluster( (UBYTE*)_pulLayer, slIntensity/255.0f);
|
AddToCluster( pubLayer, slIntensity/255.0f);
|
||||||
}
|
}
|
||||||
// advance to next pixel
|
// advance to next pixel
|
||||||
_pulLayer++;
|
pubLayer+=4;
|
||||||
slL2Point += slDL2oDU;
|
slL2Point += slDL2oDU;
|
||||||
slDL2oDU += _slDDL2oDU;
|
slDL2oDU += _slDDL2oDU;
|
||||||
ubMask<<=1;
|
ubMask<<=1;
|
||||||
|
@ -1105,7 +1134,7 @@ skipPixel:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// advance to next row
|
// advance to next row
|
||||||
_pulLayer += _slModulo/BYTES_PER_TEXEL;
|
pubLayer += _slModulo;
|
||||||
_slL2Row += _slDL2oDV;
|
_slL2Row += _slDL2oDV;
|
||||||
_slDL2oDV += _slDDL2oDV;
|
_slDL2oDV += _slDDL2oDV;
|
||||||
_slDL2oDURow += _slDDL2oDUoDV;
|
_slDL2oDURow += _slDDL2oDUoDV;
|
||||||
|
@ -1593,15 +1622,15 @@ rowNext:
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
UBYTE* pubLayer = (UBYTE*)_pulLayer;
|
||||||
// for each pixel in the shadow map
|
// for each pixel in the shadow map
|
||||||
for( PIX pixV=0; pixV<_iRowCt; pixV++) {
|
for( PIX pixV=0; pixV<_iRowCt; pixV++) {
|
||||||
for( PIX pixU=0; pixU<_iPixCt; pixU++) {
|
for( PIX pixU=0; pixU<_iPixCt; pixU++) {
|
||||||
// add the intensity to the pixel
|
// add the intensity to the pixel
|
||||||
AddToCluster( (UBYTE*)_pulLayer);
|
AddToCluster( pubLayer );
|
||||||
_pulLayer++; // go to the next pixel
|
pubLayer+=4; // go to the next pixel
|
||||||
} // go to the next row
|
} // go to the next row
|
||||||
_pulLayer += _slModulo;
|
pubLayer += _slModulo;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -1691,23 +1720,23 @@ skipLight:
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
UBYTE* pubLayer = (UBYTE*)_pulLayer;
|
||||||
// for each pixel in the shadow map
|
// for each pixel in the shadow map
|
||||||
for( PIX pixV=0; pixV<_iRowCt; pixV++) {
|
for( PIX pixV=0; pixV<_iRowCt; pixV++) {
|
||||||
for( PIX pixU=0; pixU<_iPixCt; pixU++) {
|
for( PIX pixU=0; pixU<_iPixCt; pixU++) {
|
||||||
// if the point is not masked
|
// if the point is not masked
|
||||||
if( *pubMask&ubMask) {
|
if( *pubMask&ubMask) {
|
||||||
// add the intensity to the pixel
|
// add the intensity to the pixel
|
||||||
AddToCluster( (UBYTE*)_pulLayer);
|
AddToCluster( pubLayer);
|
||||||
} // go to the next pixel
|
} // go to the next pixel
|
||||||
_pulLayer++;
|
pubLayer+=4;
|
||||||
ubMask<<=1;
|
ubMask<<=1;
|
||||||
if( ubMask==0) {
|
if( ubMask==0) {
|
||||||
pubMask ++;
|
pubMask ++;
|
||||||
ubMask = 1;
|
ubMask = 1;
|
||||||
}
|
}
|
||||||
} // go to the next row
|
} // go to the next row
|
||||||
_pulLayer += _slModulo;
|
pubLayer += _slModulo;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -1935,8 +1964,7 @@ void CLayerMixer::MixOneMipmap(CBrushShadowMap *pbsm, INDEX iMipmap)
|
||||||
__forceinline void CLayerMixer::CopyShadowLayer(void)
|
__forceinline void CLayerMixer::CopyShadowLayer(void)
|
||||||
{
|
{
|
||||||
#if (defined USE_PORTABLE_C)
|
#if (defined USE_PORTABLE_C)
|
||||||
STUBBED("shadow layer stuff");
|
memcpy(lm_pulShadowMap, lm_pulStaticShadowMap, lm_pixCanvasSizeU*lm_pixCanvasSizeV*4);
|
||||||
|
|
||||||
#elif (defined __MSVC_INLINE__)
|
#elif (defined __MSVC_INLINE__)
|
||||||
__asm {
|
__asm {
|
||||||
cld
|
cld
|
||||||
|
@ -1969,8 +1997,10 @@ __forceinline void CLayerMixer::CopyShadowLayer(void)
|
||||||
__forceinline void CLayerMixer::FillShadowLayer( COLOR col)
|
__forceinline void CLayerMixer::FillShadowLayer( COLOR col)
|
||||||
{
|
{
|
||||||
#if (defined USE_PORTABLE_C)
|
#if (defined USE_PORTABLE_C)
|
||||||
STUBBED("FillShadowLayer");
|
DWORD* dst = (DWORD*)lm_pulShadowMap;
|
||||||
|
int n = lm_pixCanvasSizeV*lm_pixCanvasSizeV;
|
||||||
|
DWORD color = __builtin_bswap32(col);
|
||||||
|
while(n--) {*(dst++)=color;}
|
||||||
#elif (defined __MSVC_INLINE__)
|
#elif (defined __MSVC_INLINE__)
|
||||||
__asm {
|
__asm {
|
||||||
cld
|
cld
|
||||||
|
|
Loading…
Reference in New Issue
Block a user