1 // Copyright 2016 The SwiftShader Authors. All Rights Reserved. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 #include "Direct3D8.hpp" 16 17 #include "resource.h" 18 19 #include <stdio.h> 20 #include <assert.h> 21 22 extern "C" 23 { 24 HINSTANCE dllInstance; 25 DllMain(HINSTANCE instance,unsigned long reason,void * reserved)26 int __stdcall DllMain(HINSTANCE instance, unsigned long reason, void *reserved) 27 { 28 dllInstance = instance; 29 30 switch(reason) 31 { 32 case DLL_PROCESS_DETACH: 33 break; 34 case DLL_PROCESS_ATTACH: 35 DisableThreadLibraryCalls(instance); 36 break; 37 case DLL_THREAD_ATTACH: 38 break; 39 case DLL_THREAD_DETACH: 40 break; 41 default: 42 SetLastError(ERROR_INVALID_PARAMETER); 43 return FALSE; 44 } 45 46 return TRUE; 47 } 48 Direct3DCreate8(unsigned int version)49 IDirect3D8 *__stdcall Direct3DCreate8(unsigned int version) 50 { 51 // D3D_SDK_VERSION check 52 if(version != 120 && // 8.0 53 version != 220) // 8.1 54 { 55 return 0; 56 } 57 58 #ifndef NDEBUG 59 FILE *file = fopen("debug.txt", "w"); // Clear debug log 60 fclose(file); 61 #endif 62 63 IDirect3D8 *device = new D3D8::Direct3D8(version, dllInstance); 64 65 if(device) 66 { 67 device->AddRef(); 68 } 69 70 return device; 71 } 72 CheckFullscreen()73 int __stdcall CheckFullscreen() // FIXME: __cdecl or __stdcall? 74 { 75 #ifndef NDEBUG 76 // ASSERT(false); // FIXME 77 #endif 78 79 return FALSE; 80 } 81 DebugSetMute(long mute)82 void __cdecl DebugSetMute(long mute) // FIXME: Return type 83 { 84 // ASSERT(false); // FIXME 85 } 86 ValidatePixelShader(long * shader,int x,int y,int z)87 int __stdcall ValidatePixelShader(long *shader, int x, int y, int z) // FIXME: __cdecl or __stdcall? // FIXME: Argument meanings 88 { 89 // ASSERT(false); // FIXME 90 91 return TRUE; 92 } 93 ValidateVertexShader(long * shader,int x,int y,int z)94 int __stdcall ValidateVertexShader(long *shader, int x, int y, int z) // FIXME: __cdecl or __stdcall? // FIXME: Argument meanings 95 { 96 // ASSERT(false); // FIXME 97 98 return TRUE; 99 } 100 } 101