summaryrefslogtreecommitdiff
path: root/Source/Plugins/Plugin_VideoSoftware/Src/TextureSampler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Plugins/Plugin_VideoSoftware/Src/TextureSampler.cpp')
-rw-r--r--Source/Plugins/Plugin_VideoSoftware/Src/TextureSampler.cpp128
1 files changed, 64 insertions, 64 deletions
diff --git a/Source/Plugins/Plugin_VideoSoftware/Src/TextureSampler.cpp b/Source/Plugins/Plugin_VideoSoftware/Src/TextureSampler.cpp
index 56101dc69d..322c09f8db 100644
--- a/Source/Plugins/Plugin_VideoSoftware/Src/TextureSampler.cpp
+++ b/Source/Plugins/Plugin_VideoSoftware/Src/TextureSampler.cpp
@@ -11,7 +11,7 @@
// A copy of the GPL 2.0 should have been included with the program.
// If not, see http://www.gnu.org/licenses/
-// Official SVN repository and contact information can be found at
+// Official Git repository and contact information can be found at
// http://code.google.com/p/dolphin-emu/
@@ -30,51 +30,51 @@ namespace TextureSampler
inline void WrapCoord(int &coord, int wrapMode, int imageSize)
{
- switch (wrapMode)
- {
- case 0: // clamp
- coord = (coord>imageSize)?imageSize:(coord<0)?0:coord;
- break;
- case 1: // wrap
- coord = coord % (imageSize + 1);
- coord = (coord<0)?imageSize+coord:coord;
- break;
- case 2: // mirror
- {
- int sizePlus1 = imageSize + 1;
- int div = coord / sizePlus1;
- coord = coord - (div * sizePlus1);
- coord = (coord<0)?-coord:coord;
- coord = (div&1)?imageSize - coord:coord;
- }
- break;
- }
+ switch (wrapMode)
+ {
+ case 0: // clamp
+ coord = (coord>imageSize)?imageSize:(coord<0)?0:coord;
+ break;
+ case 1: // wrap
+ coord = coord % (imageSize + 1);
+ coord = (coord<0)?imageSize+coord:coord;
+ break;
+ case 2: // mirror
+ {
+ int sizePlus1 = imageSize + 1;
+ int div = coord / sizePlus1;
+ coord = coord - (div * sizePlus1);
+ coord = (coord<0)?-coord:coord;
+ coord = (div&1)?imageSize - coord:coord;
+ }
+ break;
+ }
}
inline void SetTexel(u8 *inTexel, u32 *outTexel, u32 fract)
{
- outTexel[0] = inTexel[0] * fract;
- outTexel[1] = inTexel[1] * fract;
- outTexel[2] = inTexel[2] * fract;
- outTexel[3] = inTexel[3] * fract;
+ outTexel[0] = inTexel[0] * fract;
+ outTexel[1] = inTexel[1] * fract;
+ outTexel[2] = inTexel[2] * fract;
+ outTexel[3] = inTexel[3] * fract;
}
inline void AddTexel(u8 *inTexel, u32 *outTexel, u32 fract)
{
- outTexel[0] += inTexel[0] * fract;
- outTexel[1] += inTexel[1] * fract;
- outTexel[2] += inTexel[2] * fract;
- outTexel[3] += inTexel[3] * fract;
+ outTexel[0] += inTexel[0] * fract;
+ outTexel[1] += inTexel[1] * fract;
+ outTexel[2] += inTexel[2] * fract;
+ outTexel[3] += inTexel[3] * fract;
}
void Sample(s32 s, s32 t, s32 lod, bool linear, u8 texmap, u8 *sample)
{
- int baseMip = 0;
+ int baseMip = 0;
bool mipLinear = false;
#if (ALLOW_MIPMAP)
FourTexUnits& texUnit = bpmem.tex[(texmap >> 2) & 1];
- TexMode0& tm0 = texUnit.texMode0[texmap & 3];
+ TexMode0& tm0 = texUnit.texMode0[texmap & 3];
s32 lodFract = lod & 0xf;
@@ -91,7 +91,7 @@ void Sample(s32 s, s32 t, s32 lod, bool linear, u8 texmap, u8 *sample)
if (mipLinear)
{
u8 sampledTex[4];
- u32 texel[4];
+ u32 texel[4];
SampleMip(s, t, baseMip, linear, texmap, sampledTex);
SetTexel(sampledTex, texel, (16 - lodFract));
@@ -100,25 +100,25 @@ void Sample(s32 s, s32 t, s32 lod, bool linear, u8 texmap, u8 *sample)
AddTexel(sampledTex, texel, lodFract);
sample[0] = (u8)(texel[0] >> 4);
- sample[1] = (u8)(texel[1] >> 4);
- sample[2] = (u8)(texel[2] >> 4);
- sample[3] = (u8)(texel[3] >> 4);
+ sample[1] = (u8)(texel[1] >> 4);
+ sample[2] = (u8)(texel[2] >> 4);
+ sample[3] = (u8)(texel[3] >> 4);
}
else
#endif
{
SampleMip(s, t, baseMip, linear, texmap, sample);
- }
+ }
}
void SampleMip(s32 s, s32 t, s32 mip, bool linear, u8 texmap, u8 *sample)
{
FourTexUnits& texUnit = bpmem.tex[(texmap >> 2) & 1];
- u8 subTexmap = texmap & 3;
+ u8 subTexmap = texmap & 3;
- TexMode0& tm0 = texUnit.texMode0[subTexmap];
- TexImage0& ti0 = texUnit.texImage0[subTexmap];
- TexTLUT& texTlut = texUnit.texTlut[subTexmap];
+ TexMode0& tm0 = texUnit.texMode0[subTexmap];
+ TexImage0& ti0 = texUnit.texImage0[subTexmap];
+ TexTLUT& texTlut = texUnit.texTlut[subTexmap];
u8 *imageSrc, *imageSrcOdd = NULL;
if (texUnit.texImage1[subTexmap].image_type)
@@ -129,7 +129,7 @@ void SampleMip(s32 s, s32 t, s32 mip, bool linear, u8 texmap, u8 *sample)
}
else
{
- u32 imageBase = texUnit.texImage3[subTexmap].image_base << 5;
+ u32 imageBase = texUnit.texImage3[subTexmap].image_base << 5;
imageSrc = Memory::GetPointer(imageBase);
}
@@ -167,8 +167,8 @@ void SampleMip(s32 s, s32 t, s32 mip, bool linear, u8 texmap, u8 *sample)
}
}
- if (linear)
- {
+ if (linear)
+ {
// offset linear sampling
s -= 64;
t -= 64;
@@ -179,18 +179,18 @@ void SampleMip(s32 s, s32 t, s32 mip, bool linear, u8 texmap, u8 *sample)
// linear sampling
int imageSPlus1 = imageS + 1;
- int fractS = s & 0x7f;
-
- int imageTPlus1 = imageT + 1;
- int fractT = t & 0x7f;
+ int fractS = s & 0x7f;
- u8 sampledTex[4];
- u32 texel[4];
+ int imageTPlus1 = imageT + 1;
+ int fractT = t & 0x7f;
- WrapCoord(imageS, tm0.wrap_s, imageWidth);
- WrapCoord(imageT, tm0.wrap_t, imageHeight);
- WrapCoord(imageSPlus1, tm0.wrap_s, imageWidth);
- WrapCoord(imageTPlus1, tm0.wrap_t, imageHeight);
+ u8 sampledTex[4];
+ u32 texel[4];
+
+ WrapCoord(imageS, tm0.wrap_s, imageWidth);
+ WrapCoord(imageT, tm0.wrap_t, imageHeight);
+ WrapCoord(imageSPlus1, tm0.wrap_s, imageWidth);
+ WrapCoord(imageTPlus1, tm0.wrap_t, imageHeight);
if (!(ti0.format == GX_TF_RGBA8 && texUnit.texImage1[subTexmap].image_type))
{
@@ -221,26 +221,26 @@ void SampleMip(s32 s, s32 t, s32 mip, bool linear, u8 texmap, u8 *sample)
AddTexel(sampledTex, texel, (fractS) * (fractT));
}
- sample[0] = (u8)(texel[0] >> 14);
- sample[1] = (u8)(texel[1] >> 14);
- sample[2] = (u8)(texel[2] >> 14);
- sample[3] = (u8)(texel[3] >> 14);
- }
- else
- {
+ sample[0] = (u8)(texel[0] >> 14);
+ sample[1] = (u8)(texel[1] >> 14);
+ sample[2] = (u8)(texel[2] >> 14);
+ sample[3] = (u8)(texel[3] >> 14);
+ }
+ else
+ {
// integer part of sample location
int imageS = s >> 7;
int imageT = t >> 7;
- // nearest neighbor sampling
+ // nearest neighbor sampling
WrapCoord(imageS, tm0.wrap_s, imageWidth);
- WrapCoord(imageT, tm0.wrap_t, imageHeight);
+ WrapCoord(imageT, tm0.wrap_t, imageHeight);
if (!(ti0.format == GX_TF_RGBA8 && texUnit.texImage1[subTexmap].image_type))
- TexDecoder_DecodeTexel(sample, imageSrc, imageS, imageT, imageWidth, ti0.format, tlutAddress, texTlut.tlut_format);
+ TexDecoder_DecodeTexel(sample, imageSrc, imageS, imageT, imageWidth, ti0.format, tlutAddress, texTlut.tlut_format);
else
- TexDecoder_DecodeTexelRGBA8FromTmem(sample, imageSrc, imageSrcOdd, imageS, imageT, imageWidth);
- }
+ TexDecoder_DecodeTexelRGBA8FromTmem(sample, imageSrc, imageSrcOdd, imageS, imageT, imageWidth);
+ }
}
}