public override void load(Stream stream) { aBinaryReader reader = new aBinaryReader(stream, Endianness.Big); mFormat = (gxTextureFormat)reader.Read8(); // 0000 mTransparency = reader.Read8(); // 0001 mWidth = reader.Read16(); // 0002 mHeight = reader.Read16(); // 0004 mWrapS = (gxWrapMode)reader.Read8(); // 0006 mWrapT = (gxWrapMode)reader.Read8(); // 0007 reader.Step(1); // 0008 (0001) mTlutFormat = (gxTlutFormat)reader.Read8(); // 0009 int tlutentrycount = reader.Read16(); // 000A long tlutoffset = reader.Read32(); // 000C mMipMap = (reader.Read8() != 0); // 0010 mEdgeLOD = (reader.Read8() != 0); // 0011 mBiasClamp = (reader.Read8() != 0); // 0012 mMaxAniso = (gxAnisotropy)reader.Read8(); // 0013 mMinFilter = (gxTextureFilter)reader.Read8(); // 0014 mMagFilter = (gxTextureFilter)reader.Read8(); // 0015 mMinLod = reader.ReadS8(); // 0016 mMaxLod = reader.ReadS8(); // 0017 mImageCount = reader.Read8(); // 0018 (0001) mLodBias = reader.ReadS16(); // 001A long texoffset = reader.Read32(); // 001C loadImageData(reader, texoffset); if (tlutentrycount > 0) { loadPaletteData(reader, tlutentrycount, tlutoffset); } }
static float convertAnisotropy(gxAnisotropy maxAniso) { switch (maxAniso) { case gxAnisotropy.Aniso1: return(1.0f); case gxAnisotropy.Aniso2: return(2.0f); case gxAnisotropy.Aniso4: return(4.0f); } throw new ArgumentOutOfRangeException("maxAniso", "Invalid anisotropy."); }
public static void initTexObjLOD(int textureName, gxTextureFilter minFilter, gxTextureFilter magFilter, double minLod, double maxLod, double lodBias, bool biasClamp, bool doEdgeLod, gxAnisotropy maxAniso) { GL.BindTexture(TextureTarget.Texture2D, textureName); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureLodBias, (float)lodBias); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)convertMinFilter(minFilter)); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)convertMagFilter(magFilter)); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinLod, (float)bloMath.clamp(minLod, 0.0d, 10.0d)); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMaxLod, (float)bloMath.clamp(maxLod, 0.0d, 10.0d)); GL.TexParameter(TextureTarget.Texture2D, (TextureParameterName)ExtTextureFilterAnisotropic.TextureMaxAnisotropyExt, convertAnisotropy(maxAniso)); }