• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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