aboutsummaryrefslogtreecommitdiff
path: root/Externals/cg/2.2/include/Cg/cgD3D10.h
blob: 0a0b6b724a75502f5522ed6fa883af52adde8c61 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
/*
 *
 * Copyright (c) 2008-2010, NVIDIA Corporation.
 * 
 *  
 * 
 * NVIDIA Corporation("NVIDIA") supplies this software to you in consideration 
 * of your agreement to the following terms, and your use, installation, 
 * modification or redistribution of this NVIDIA software constitutes 
 * acceptance of these terms.  If you do not agree with these terms, please do 
 * not use, install, modify or redistribute this NVIDIA software.
 * 
 *  
 * 
 * In consideration of your agreement to abide by the following terms, and 
 * subject to these terms, NVIDIA grants you a personal, non-exclusive license,
 * under NVIDIA's copyrights in this original NVIDIA software (the "NVIDIA 
 * Software"), to use, reproduce, modify and redistribute the NVIDIA 
 * Software, with or without modifications, in source and/or binary forms; 
 * provided that if you redistribute the NVIDIA Software, you must retain the 
 * copyright notice of NVIDIA, this notice and the following text and 
 * disclaimers in all such redistributions of the NVIDIA Software. Neither the 
 * name, trademarks, service marks nor logos of NVIDIA Corporation may be used 
 * to endorse or promote products derived from the NVIDIA Software without 
 * specific prior written permission from NVIDIA.  Except as expressly stated 
 * in this notice, no other rights or licenses express or implied, are granted 
 * by NVIDIA herein, including but not limited to any patent rights that may be 
 * infringed by your derivative works or by other works in which the NVIDIA 
 * Software may be incorporated. No hardware is licensed hereunder. 
 * 
 *  
 * 
 * THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT 
 * WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING 
 * WITHOUT LIMITATION, WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, 
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR ITS USE AND OPERATION 
 * EITHER ALONE OR IN COMBINATION WITH OTHER PRODUCTS.
 * 
 *  
 * 
 * IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL, 
 * EXEMPLARY, CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, LOST 
 * PROFITS; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
 * PROFITS; OR BUSINESS INTERRUPTION) OR ARISING IN ANY WAY OUT OF THE USE, 
 * REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE NVIDIA SOFTWARE, 
 * HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING 
 * NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF NVIDIA HAS BEEN ADVISED 
 * OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 */ 


#ifndef __CGD3D10_H__
#define __CGD3D10_H__

#ifdef _WIN32

#pragma once

#include <windows.h>
#include <d3d10.h>

#include "Cg/cg.h"



// Set up for either Win32 import/export/lib.
#ifdef CGD3D10DLL_EXPORTS
#define CGD3D10DLL_API __declspec(dllexport)
#elif defined (CG_LIB)
#define CGD3D10DLL_API
#else
#define CGD3D10DLL_API __declspec(dllimport)
#endif

#ifndef CGD3D10ENTRY
# ifdef _WIN32
#  define CGD3D10ENTRY __cdecl
# else
#  define CGD3D10ENTRY
# endif
#endif

#ifdef __cplusplus
extern "C"
{
#endif

#ifndef CGD3D10_EXPLICIT

/* ----- D3D Device Control ----- */

CGD3D10DLL_API ID3D10Device * CGD3D10ENTRY
cgD3D10GetDevice( 
    CGcontext Context
);

CGD3D10DLL_API HRESULT CGD3D10ENTRY
cgD3D10SetDevice( 
    CGcontext Context, 
    ID3D10Device * pDevice
);

/* ----- Texture Functions ----- */

CGD3D10DLL_API void CGD3D10ENTRY
cgD3D10SetTextureParameter( 
    CGparameter Parameter,
    ID3D10Resource * pTexture
);

CGD3D10DLL_API void CGD3D10ENTRY
cgD3D10SetSamplerStateParameter(
    CGparameter Parameter,
    ID3D10SamplerState * pSamplerState
);

CGD3D10DLL_API void CGD3D10ENTRY
cgD3D10SetTextureSamplerStateParameter( 
    CGparameter Parameter,
    ID3D10Resource * pTexture,
    ID3D10SamplerState * pSamplerState
);

/* ----- Shader Management ----- */

CGD3D10DLL_API HRESULT CGD3D10ENTRY
cgD3D10LoadProgram(
    CGprogram Program,    
    UINT Flags
);

CGD3D10DLL_API ID3D10Blob * CGD3D10ENTRY
cgD3D10GetCompiledProgram(
    CGprogram Program
);

CGD3D10DLL_API ID3D10Blob * CGD3D10ENTRY
cgD3D10GetProgramErrors(
    CGprogram Program
);

CGD3D10DLL_API CGbool CGD3D10ENTRY
cgD3D10IsProgramLoaded(
    CGprogram Program
);

CGD3D10DLL_API HRESULT CGD3D10ENTRY
cgD3D10BindProgram(
    CGprogram Program
);

CGD3D10DLL_API void CGD3D10ENTRY
cgD3D10UnloadProgram(
    CGprogram Program
);

/* ----- Buffer Management ----- */

CGD3D10DLL_API ID3D10Buffer * CGD3D10ENTRY
cgD3D10GetBufferByIndex( 
    CGprogram Program,
    UINT Index
);

/* ----- CgFX ----- */

CGD3D10DLL_API void CGD3D10ENTRY
cgD3D10RegisterStates(
    CGcontext Context
);

CGD3D10DLL_API void CGD3D10ENTRY
cgD3D10SetManageTextureParameters( 
    CGcontext Context, 
    CGbool Flag 
);

CGD3D10DLL_API CGbool CGD3D10ENTRY
cgD3D10GetManageTextureParameters( 
    CGcontext Context 
);

CGD3D10DLL_API ID3D10Blob * CGD3D10ENTRY
cgD3D10GetIASignatureByPass(
    CGpass Pass
);

/* ----- Profile Options ----- */

CGD3D10DLL_API CGprofile CGD3D10ENTRY
cgD3D10GetLatestVertexProfile();

CGD3D10DLL_API CGprofile CGD3D10ENTRY
cgD3D10GetLatestGeometryProfile();

CGD3D10DLL_API CGprofile CGD3D10ENTRY
cgD3D10GetLatestPixelProfile();

CGD3D10DLL_API CGbool CGD3D10ENTRY
cgD3D10IsProfileSupported(
    CGprofile Profile                          
);

/* ----- Utility Functions ----- */

CGD3D10DLL_API DWORD CGD3D10ENTRY
cgD3D10TypeToSize( 
    CGtype Type
);

CGD3D10DLL_API HRESULT CGD3D10ENTRY
cgD3D10GetLastError();

CGD3D10DLL_API const char ** CGD3D10ENTRY
cgD3D10GetOptimalOptions(
    CGprofile Profile       
);

CGD3D10DLL_API const char * CGD3D10ENTRY
cgD3D10TranslateCGerror(
    CGerror Error
);

CGD3D10DLL_API const char * CGD3D10ENTRY
cgD3D10TranslateHRESULT(
    HRESULT hr
);

#endif // #ifndef CGD3D10_EXPLICIT

#ifdef __cplusplus
}; // extern "C"
#endif

#endif // #ifdef _WIN32

#endif // #ifndef __CGD3D10_H__