215 {
217 {
219 }
221 {
224 uint num = *(uint*)((byte*)device.d3dCaps.t + 64);
226 {
227 default:
231 break;
232 case TextureFilter.Point:
236 break;
237 case TextureFilter.Anisotropic:
238 {
239 _D3DTEXTUREFILTERTYPE d3DTEXTUREFILTERTYPE = (_D3DTEXTUREFILTERTYPE)(((num & 0x400) | 0x800) >> 10);
241 _D3DTEXTUREFILTERTYPE d3DTEXTUREFILTERTYPE2 = (_D3DTEXTUREFILTERTYPE)(((num & 0x4000000) | 0x8000000) >> 26);
244 break;
245 }
246 case TextureFilter.LinearMipPoint:
250 break;
251 case TextureFilter.PointMipLinear:
255 break;
256 case TextureFilter.MinLinearMagPointMipLinear:
260 break;
261 case TextureFilter.MinLinearMagPointMipPoint:
265 break;
266 case TextureFilter.MinPointMagLinearMipLinear:
270 break;
271 case TextureFilter.MinPointMagLinearMipPoint:
275 break;
276 }
280 int num2 = ((
minFilter != (_D3DTEXTUREFILTERTYPE)1) ? 1 : 0);
282 int num3 = ((
magFilter != (_D3DTEXTUREFILTERTYPE)1) ? 1 : 0);
284 int num4 = ((
mipFilter != (_D3DTEXTUREFILTERTYPE)1) ? 1 : 0);
286 int num5 = ((
d3dAddressU != (_D3DTEXTUREADDRESS)3) ? 1 : 0);
288 int num6 = ((
d3dAddressV != (_D3DTEXTUREADDRESS)3) ? 1 : 0);
290 }
292 Helpers.CheckDisposed(device, pComPtr);
293 int num7 = ((samplerIndex < 257) ? samplerIndex : (samplerIndex - 241));
294 EffectPass activePass = device.activePass;
295 if (activePass != null && ((uint)activePass._stateFlags & (uint)(8 << num7)) != 0)
296 {
297 activePass.EndPass();
298 device.activePass = null;
299 }
300 IDirect3DDevice9* pComPtr2 = device.pComPtr;
301 ((delegate* unmanaged[Stdcall, Stdcall]<
IntPtr, uint, _D3DSAMPLERSTATETYPE, uint,
int>)(
int)(*(uint*)(*(
int*)pComPtr2 + 276)))((nint)pComPtr2, (uint)samplerIndex, (_D3DSAMPLERSTATETYPE)6, (uint)
minFilter);
302 ((delegate* unmanaged[Stdcall, Stdcall]<
IntPtr, uint, _D3DSAMPLERSTATETYPE, uint,
int>)(
int)(*(uint*)(*(
int*)pComPtr2 + 276)))((nint)pComPtr2, (uint)samplerIndex, (_D3DSAMPLERSTATETYPE)5, (uint)
magFilter);
303 ((delegate* unmanaged[Stdcall, Stdcall]<
IntPtr, uint, _D3DSAMPLERSTATETYPE, uint,
int>)(
int)(*(uint*)(*(
int*)pComPtr2 + 276)))((nint)pComPtr2, (uint)samplerIndex, (_D3DSAMPLERSTATETYPE)7, (uint)
mipFilter);
304 ((delegate* unmanaged[Stdcall, Stdcall]<
IntPtr, uint, _D3DSAMPLERSTATETYPE, uint,
int>)(
int)(*(uint*)(*(
int*)pComPtr2 + 276)))((nint)pComPtr2, (uint)samplerIndex, (_D3DSAMPLERSTATETYPE)1, (uint)
d3dAddressU);
305 ((delegate* unmanaged[Stdcall, Stdcall]<
IntPtr, uint, _D3DSAMPLERSTATETYPE, uint,
int>)(
int)(*(uint*)(*(
int*)pComPtr2 + 276)))((nint)pComPtr2, (uint)samplerIndex, (_D3DSAMPLERSTATETYPE)2, (uint)
d3dAddressV);
306 ((delegate* unmanaged[Stdcall, Stdcall]<
IntPtr, uint, _D3DSAMPLERSTATETYPE, uint,
int>)(
int)(*(uint*)(*(
int*)pComPtr2 + 276)))((nint)pComPtr2, (uint)samplerIndex, (_D3DSAMPLERSTATETYPE)3, (uint)
d3dAddressW);
307 uint num8 = *(uint*)((byte*)device.d3dCaps.t + 108);
309 uint num10 = (((uint)num9 >= num8) ? num8 : ((uint)num9));
310 ((delegate* unmanaged[Stdcall, Stdcall]<
IntPtr, uint, _D3DSAMPLERSTATETYPE, uint,
int>)(
int)(*(uint*)(*(
int*)pComPtr2 + 276)))((nint)pComPtr2, (uint)samplerIndex, (_D3DSAMPLERSTATETYPE)10, num10);
311 ((delegate* unmanaged[Stdcall, Stdcall]<
IntPtr, uint, _D3DSAMPLERSTATETYPE, uint,
int>)(
int)(*(uint*)(*(
int*)pComPtr2 + 276)))((nint)pComPtr2, (uint)samplerIndex, (_D3DSAMPLERSTATETYPE)9, (uint)
cachedMaxMipLevel);
313 ((delegate* unmanaged[Stdcall, Stdcall]<
IntPtr, uint, _D3DSAMPLERSTATETYPE, uint,
int>)(
int)(*(uint*)(*(
int*)pComPtr2 + 276)))((nint)pComPtr2, (uint)samplerIndex, (_D3DSAMPLERSTATETYPE)8, *(uint*)(&num11));
314 StateTrackerDevice* pStateTracker = device.pStateTracker;
315 uint num12 = (uint)(~(1 << num7));
316 *(
int*)((
byte*)pStateTracker + 116) = (
int)(
filterMinFlag << num7) | (*(
int*)((
byte*)pStateTracker + 116) & (int)num12);
317 *(
int*)((
byte*)pStateTracker + 120) = (
int)(
filterMagFlag << num7) | ((
int)num12 & *(
int*)((
byte*)pStateTracker + 120));
318 *(
int*)((
byte*)pStateTracker + 124) = (
int)(
filterMipFlag << num7) | (*(
int*)((
byte*)pStateTracker + 124) & (int)num12);
319 *(
int*)((
byte*)pStateTracker + 128) = (
int)(
nonClampAddressUFlag << num7) | (*(
int*)((
byte*)pStateTracker + 128) & (int)num12);
320 *(
int*)((
byte*)pStateTracker + 132) = (
int)(
nonClampAddressVFlag << num7) | (*(
int*)((
byte*)pStateTracker + 132) & (int)num12);
321 }
TextureAddressMode cachedAddressW
float cachedMipMapLevelOfDetailBias
_D3DTEXTUREADDRESS d3dAddressV
_D3DTEXTUREADDRESS d3dAddressW
uint nonClampAddressUFlag
_D3DTEXTUREFILTERTYPE magFilter
uint nonClampAddressVFlag
TextureAddressMode cachedAddressV
TextureAddressMode cachedAddressU
_D3DTEXTUREFILTERTYPE minFilter
_D3DTEXTUREFILTERTYPE mipFilter
TextureFilter cachedFilter
_D3DTEXTUREADDRESS d3dAddressU