ReactOS 0.4.17-dev-966-gf06eace
wined3d_main.c File Reference
#include "initguid.h"
#include "wined3d_private.h"
#include "wined3d_gl.h"
#include "d3d12.h"
#include "wine/vulkan.h"
#include <vkd3d.h>
Include dependency graph for wined3d_main.c:

Go to the source code of this file.

Classes

struct  wined3d_wndproc
 
struct  wined3d_wndproc_table
 
struct  wined3d_window_hook
 
struct  wined3d_registered_swapchain_state
 
struct  wined3d_swapchain_state_table
 

Macros

#define VKD3D_NO_VULKAN_H
 
#define VKD3D_NO_WIN32_TYPES
 
#define VK_NO_PROTOTYPES
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (d3d)
 
 WINE_DECLARE_DEBUG_CHANNEL (vkd3d)
 
 WINE_DECLARE_DEBUG_CHANNEL (winediag)
 
enum wined3d_renderer CDECL wined3d_get_renderer (void)
 
struct wined3d *CDECL wined3d_create (uint32_t flags)
 
static bool is_option_separator (char c)
 
static const char * config_list_get_value (const char *string, const char *key, size_t *len)
 
static DWORD get_config_key (HKEY defkey, HKEY appkey, const char *env, const char *name, char *buffer, DWORD size)
 
static DWORD get_config_key_dword (HKEY defkey, HKEY appkey, const char *env, const char *name, unsigned int *value)
 
BOOL wined3d_get_app_name (char *app_name, unsigned int app_name_size)
 
static void vkd3d_log_callback (const char *fmt, va_list args)
 
static BOOL wined3d_dll_init (HINSTANCE hInstDLL)
 
static BOOL wined3d_dll_destroy (HINSTANCE hInstDLL)
 
void WINAPI wined3d_mutex_lock (void)
 
void WINAPI wined3d_mutex_unlock (void)
 
static void wined3d_wndproc_mutex_lock (void)
 
static void wined3d_wndproc_mutex_unlock (void)
 
static struct wined3d_output * wined3d_get_output_from_window (const struct wined3d *wined3d, HWND hwnd)
 
static struct wined3d_wndproc * wined3d_find_wndproc (HWND window, struct wined3d *wined3d)
 
BOOL wined3d_filter_messages (HWND window, BOOL filter)
 
static LRESULT CALLBACK wined3d_wndproc (HWND window, UINT message, WPARAM wparam, LPARAM lparam)
 
static LRESULT CALLBACK wined3d_hook_proc (int code, WPARAM wparam, LPARAM lparam)
 
BOOL CDECL wined3d_register_window (struct wined3d *wined3d, HWND window, struct wined3d_device *device, unsigned int flags)
 
static BOOL restore_wndproc (struct wined3d_wndproc *entry)
 
void wined3d_unregister_window (HWND window)
 
void CDECL wined3d_unregister_windows (struct wined3d *wined3d)
 
static struct wined3d_window_hook * wined3d_find_hook (DWORD thread_id)
 
void wined3d_swapchain_state_register (struct wined3d_swapchain_state *state)
 
static void wined3d_swapchain_state_unregister (struct wined3d_swapchain_state *state)
 
void wined3d_swapchain_state_cleanup (struct wined3d_swapchain_state *state)
 
BOOL WINAPI DllMain (HINSTANCE inst, DWORD reason, void *reserved)
 

Variables

static struct wined3d_wndproc_table wndproc_table
 
static struct wined3d_swapchain_state_table swapchain_state_table
 
static CRITICAL_SECTION wined3d_cs = {&wined3d_cs_debug, -1, 0, 0, 0, 0}
 
static CRITICAL_SECTION_DEBUG wined3d_cs_debug
 
static CRITICAL_SECTION wined3d_wndproc_cs = {&wined3d_wndproc_cs_debug, -1, 0, 0, 0, 0}
 
static CRITICAL_SECTION_DEBUG wined3d_wndproc_cs_debug
 
CRITICAL_SECTION wined3d_command_cs = {&wined3d_command_cs_debug, -1, 0, 0, 0, 0}
 
static CRITICAL_SECTION_DEBUG wined3d_command_cs_debug
 
struct wined3d_settings wined3d_settings
 

Macro Definition Documentation

◆ VK_NO_PROTOTYPES

#define VK_NO_PROTOTYPES

Definition at line 31 of file wined3d_main.c.

◆ VKD3D_NO_VULKAN_H

#define VKD3D_NO_VULKAN_H

Definition at line 25 of file wined3d_main.c.

◆ VKD3D_NO_WIN32_TYPES

#define VKD3D_NO_WIN32_TYPES

Definition at line 26 of file wined3d_main.c.

Function Documentation

◆ config_list_get_value()

static const char * config_list_get_value ( const char *  string,
const char *  key,
size_t *  len 
)
static

Definition at line 173 of file wined3d_main.c.

174{
175 const char *p, *end;
176 char prev_char;
177
178 p = string;
179 while (p)
180 {
181 if ((p = strstr(p, key)))
182 {
183 prev_char = p > string ? p[-1] : 0;
184 p += strlen(key);
185
186 if (is_option_separator(prev_char) && *p == '=')
187 {
188 if ((end = strpbrk(p + 1, ",;")))
189 *len = end - (p + 1);
190 else
191 *len = strlen(p + 1);
192 return p + 1;
193 }
194 }
195 }
196
197 return NULL;
198}
#define NULL
Definition: types.h:112
_ACRTIMP size_t __cdecl strlen(const char *)
Definition: string.c:1597
_ACRTIMP char *__cdecl strstr(const char *, const char *)
Definition: string.c:3420
_ACRTIMP char *__cdecl strpbrk(const char *, const char *)
Definition: string.c:3530
GLuint GLuint end
Definition: gl.h:1545
GLfloat GLfloat p
Definition: glext.h:8902
GLenum GLsizei len
Definition: glext.h:6722
char string[160]
Definition: util.h:11
Definition: copy.c:22
static bool is_option_separator(char c)
Definition: wined3d_main.c:168

Referenced by get_config_key(), and get_config_key_dword().

◆ DllMain()

BOOL WINAPI DllMain ( HINSTANCE  inst,
DWORD  reason,
void *  reserved 
)

Definition at line 948 of file wined3d_main.c.

949{
950 switch (reason)
951 {
953 return wined3d_dll_init(inst);
954
956 if (!reserved)
957 return wined3d_dll_destroy(inst);
958 break;
959
962 {
963 ERR("Failed to clear current context.\n");
964 }
965 return TRUE;
966 }
967 return TRUE;
968}
#define ERR(fmt,...)
Definition: precomp.h:57
BOOL wined3d_context_gl_set_current(struct wined3d_context_gl *context_gl)
Definition: context_gl.c:1571
#define TRUE
Definition: types.h:120
static WCHAR reason[MAX_STRING_RESOURCE_LEN]
Definition: object.c:1971
#define DLL_THREAD_DETACH
Definition: compat.h:133
#define DLL_PROCESS_ATTACH
Definition: compat.h:131
#define DLL_PROCESS_DETACH
Definition: compat.h:130
r reserved
Definition: btrfs.c:3006
static BOOL wined3d_dll_destroy(HINSTANCE hInstDLL)
Definition: wined3d_main.c:498
static BOOL wined3d_dll_init(HINSTANCE hInstDLL)
Definition: wined3d_main.c:273

◆ get_config_key()

static DWORD get_config_key ( HKEY  defkey,
HKEY  appkey,
const char *  env,
const char *  name,
char *  buffer,
DWORD  size 
)
static

Definition at line 200 of file wined3d_main.c.

201{
202 const char *env_value;
203 size_t env_len;
204
205 if ((env_value = config_list_get_value(env, name, &env_len)) && env_len < size)
206 {
207 memcpy(buffer, env_value, env_len);
208 buffer[env_len] = 0;
209 return 0;
210 }
211 if (appkey && !RegQueryValueExA(appkey, name, 0, NULL, (BYTE *)buffer, &size)) return 0;
212 if (defkey && !RegQueryValueExA(defkey, name, 0, NULL, (BYTE *)buffer, &size)) return 0;
214}
static LPCWSTR LPCWSTR LPCWSTR env
Definition: db.cpp:171
LONG WINAPI RegQueryValueExA(_In_ HKEY hkeyorg, _In_ LPCSTR name, _In_ LPDWORD reserved, _Out_opt_ LPDWORD type, _Out_opt_ LPBYTE data, _Inout_opt_ LPDWORD count)
Definition: reg.c:4009
GLuint buffer
Definition: glext.h:5915
GLsizeiptr size
Definition: glext.h:5919
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
#define ERROR_FILE_NOT_FOUND
Definition: disk.h:79
Definition: name.c:39
static const char * config_list_get_value(const char *string, const char *key, size_t *len)
Definition: wined3d_main.c:173
unsigned char BYTE
Definition: xxhash.c:193

Referenced by wined3d_dll_init().

◆ get_config_key_dword()

static DWORD get_config_key_dword ( HKEY  defkey,
HKEY  appkey,
const char *  env,
const char *  name,
unsigned int *  value 
)
static

Definition at line 216 of file wined3d_main.c.

217{
219 const char *env_value;
220 size_t env_len;
221 char *end;
222
223 if ((env_value = config_list_get_value(env, name, &env_len)))
224 {
225 *value = strtoul(env_value, &end, 0);
226 if (end != env_value)
227 return 0;
228 }
229 size = sizeof(data);
230 if (appkey && !RegQueryValueExA(appkey, name, 0, &type, (BYTE *)&data, &size) && type == REG_DWORD) goto success;
231 size = sizeof(data);
232 if (defkey && !RegQueryValueExA(defkey, name, 0, &type, (BYTE *)&data, &size) && type == REG_DWORD) goto success;
233
235
236success:
237 *value = data;
238 return 0;
239}
_ACRTIMP __msvcrt_ulong __cdecl strtoul(const char *, char **, int)
Definition: string.c:1864
unsigned long DWORD
Definition: ntddk_ex.h:95
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
#define REG_DWORD
Definition: sdbapi.c:615
Definition: pdh_main.c:64
#define success(from, fromstr, to, tostr)

Referenced by wined3d_dll_init().

◆ is_option_separator()

static bool is_option_separator ( char  c)
static

Definition at line 168 of file wined3d_main.c.

169{
170 return c == ',' || c == ';' || c == '\0';
171}
const GLubyte * c
Definition: glext.h:8905

Referenced by config_list_get_value().

◆ restore_wndproc()

static BOOL restore_wndproc ( struct wined3d_wndproc *  entry)
static

Definition at line 768 of file wined3d_main.c.

769{
771
772 if (entry->unicode)
773 {
776 return FALSE;
778 }
779 else
780 {
783 return FALSE;
785 }
786
787 return TRUE;
788}
#define FALSE
Definition: types.h:117
uint32_t entry
Definition: isohybrid.c:63
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
static HANDLE proc()
Definition: pdb.c:32
#define SetWindowLongPtrA
Definition: winuser.h:5511
#define GetWindowLongPtrW
Definition: winuser.h:4983
#define GetWindowLongPtrA
Definition: winuser.h:4982
#define SetWindowLongPtrW
Definition: winuser.h:5512
#define GWLP_WNDPROC
Definition: treelist.c:66

Referenced by wined3d_unregister_window(), and wined3d_unregister_windows().

◆ vkd3d_log_callback()

static void vkd3d_log_callback ( const char *  fmt,
va_list  args 
)
static

Definition at line 265 of file wined3d_main.c.

266{
267 char buffer[1024];
268
269 vsnprintf(buffer, sizeof(buffer), fmt, args);
271}
#define vsnprintf
Definition: acwin.h:108
const char int int __cdecl __wine_dbg_output(const char *str)
Definition: debug.c:273
Definition: match.c:390
Definition: dsound.c:943

Referenced by wined3d_dll_init().

◆ WINE_DECLARE_DEBUG_CHANNEL() [1/2]

WINE_DECLARE_DEBUG_CHANNEL ( vkd3d  )

◆ WINE_DECLARE_DEBUG_CHANNEL() [2/2]

WINE_DECLARE_DEBUG_CHANNEL ( winediag  )

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( d3d  )

◆ wined3d_create()

struct wined3d *CDECL wined3d_create ( uint32_t  flags)

Definition at line 142 of file wined3d_main.c.

143{
144 struct wined3d *object;
145 HRESULT hr;
146
147 if (!(object = calloc(1, FIELD_OFFSET(struct wined3d, adapters[1]))))
148 {
149 ERR("Failed to allocate wined3d object memory.\n");
150 return NULL;
151 }
152
155
156 if (FAILED(hr = wined3d_init(object, flags)))
157 {
158 WARN("Failed to initialize wined3d object, hr %#lx.\n", hr);
159 free(object);
160 return NULL;
161 }
162
163 TRACE("Created wined3d object %p.\n", object);
164
165 return object;
166}
#define WARN(fmt,...)
Definition: precomp.h:61
#define free
Definition: debug_ros.c:5
HRESULT hr
Definition: delayimp.cpp:582
GLbitfield flags
Definition: glext.h:7161
#define FAILED(hr)
Definition: intsafe.h:51
#define calloc
Definition: rosglue.h:14
#define TRACE(s)
Definition: solgame.cpp:4
enum wined3d_renderer renderer
struct wined3d_adapter * adapters[1]
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:255
HRESULT wined3d_init(struct wined3d *wined3d, uint32_t flags)
Definition: directx.c:3477
#define WINED3D_NO3D
Definition: wined3d.h:1323
@ WINED3D_RENDERER_NO3D
Definition: wined3d.h:61

Referenced by d3d8_init(), d3d9_init(), ddraw_init(), DirectDrawEnumerateExA(), and dxgi_factory_init().

◆ wined3d_dll_destroy()

static BOOL wined3d_dll_destroy ( HINSTANCE  hInstDLL)
static

Definition at line 498 of file wined3d_main.c.

499{
501 unsigned int i;
502
504 {
505 unsigned int err = GetLastError();
506 ERR("Failed to free context TLS index, err %#x.\n", err);
507 }
508
509 for (i = 0; i < wndproc_table.count; ++i)
510 {
511 /* Trying to unregister these would be futile. These entries can only
512 * exist if either we skipped them in wined3d_unregister_window() due
513 * to the application replacing the wndproc after the entry was
514 * registered, or if the application still has an active wined3d
515 * device. In the latter case the application has bigger problems than
516 * these entries. */
517 WARN("Leftover wndproc table entry %p.\n", &wndproc_table.entries[i]);
518 }
519 free(wndproc_table.entries);
520
522 for (i = 0; i < swapchain_state_table.hook_count; ++i)
523 {
524 WARN("Leftover swapchain state hook %p.\n", &swapchain_state_table.hooks[i]);
526 }
528
531
533
536 return TRUE;
537}
static DWORD wined3d_context_tls_idx
Definition: context_gl.c:37
DWORD context_get_tls_idx(void)
Definition: context_gl.c:1556
BOOL WINAPI TlsFree(IN DWORD Index)
Definition: thread.c:1224
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
BOOL WINAPI UnregisterClassA(_In_ LPCSTR, HINSTANCE)
BOOL WINAPI UnhookWindowsHookEx(_In_ HHOOK)
#define err(...)
DWORD WINAPI GetLastError(void)
Definition: except.c:1042
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
static struct wined3d_swapchain_state_table swapchain_state_table
Definition: wined3d_main.c:82
CRITICAL_SECTION wined3d_command_cs
Definition: wined3d_main.c:104
static struct wined3d_wndproc_table wndproc_table
Definition: wined3d_main.c:81
static CRITICAL_SECTION wined3d_wndproc_cs
Definition: wined3d_main.c:94
#define WINED3D_OPENGL_WINDOW_CLASS_NAME

Referenced by DllMain().

◆ wined3d_dll_init()

static BOOL wined3d_dll_init ( HINSTANCE  hInstDLL)
static

Definition at line 273 of file wined3d_main.c.

274{
276 char buffer[MAX_PATH+10];
277 DWORD size = sizeof(buffer);
278 const char *env;
279 HKEY hkey = 0;
280 HKEY appkey = 0;
281 unsigned int tmpvalue;
282 WNDCLASSA wc;
283
286 {
287 unsigned int err = GetLastError();
288 ERR("Failed to allocate context TLS index, err %#x.\n", err);
289 return FALSE;
290 }
292
293 /* We need our own window class for a fake window which we use to retrieve GL capabilities */
294 /* We might need CS_OWNDC in the future if we notice strange things on Windows.
295 * Various articles/posts about OpenGL problems on Windows recommend this. */
298 wc.cbClsExtra = 0;
299 wc.cbWndExtra = 0;
300 wc.hInstance = hInstDLL;
301 wc.hIcon = LoadIconA(NULL, (const char *)IDI_WINLOGO);
302 wc.hCursor = LoadCursorA(NULL, (const char *)IDC_ARROW);
303 wc.hbrBackground = NULL;
304 wc.lpszMenuName = NULL;
306
307 if (!RegisterClassA(&wc))
308 {
309 ERR("Failed to register window class 'WineD3D_OpenGL'!\n");
311 {
312 unsigned int err = GetLastError();
313 ERR("Failed to free context TLS index, err %#x.\n", err);
314 }
315 return FALSE;
316 }
317
319
320 /* @@ Wine registry key: HKCU\Software\Wine\Direct3D */
321 if ( RegOpenKeyA( HKEY_CURRENT_USER, "Software\\Wine\\Direct3D", &hkey ) ) hkey = 0;
322
324 {
325 HKEY tmpkey;
326 /* @@ Wine registry key: HKCU\Software\Wine\AppDefaults\app.exe\Direct3D */
327 if (!RegOpenKeyA(HKEY_CURRENT_USER, "Software\\Wine\\AppDefaults", &tmpkey))
328 {
329 strcat(buffer, "\\Direct3D");
330 TRACE("Application name %s.\n", buffer);
331 if (RegOpenKeyA(tmpkey, buffer, &appkey)) appkey = 0;
332 RegCloseKey(tmpkey);
333 }
334 }
335
336 /* Allow modifying settings using the WINE_D3D_CONFIG environment variable,
337 * which takes precedence over registry keys. An example is as follows:
338 *
339 * WINE_D3D_CONFIG=csmt=0x1,shader_backend=glsl
340 */
341 env = getenv("WINE_D3D_CONFIG");
342
343 if (hkey || appkey || env)
344 {
345 if (!get_config_key_dword(hkey, appkey, env, "csmt", &wined3d_settings.cs_multithreaded))
346 ERR_(winediag)("Setting multithreaded command stream to %#x.\n", wined3d_settings.cs_multithreaded);
347 if (!get_config_key_dword(hkey, appkey, env, "MaxVersionGL", &tmpvalue))
348 {
349 ERR_(winediag)("Setting maximum allowed wined3d GL version to %u.%u.\n",
350 tmpvalue >> 16, tmpvalue & 0xffff);
352 }
353 if (!get_config_key(hkey, appkey, env, "shader_backend", buffer, size))
354 {
355 if (!stricmp(buffer, "glsl-vkd3d"))
356 {
357 ERR_(winediag)("Using the vkd3d-shader GLSL shader backend.\n");
359 }
360 if (!stricmp(buffer, "glsl"))
361 {
362 ERR_(winediag)("Using the GLSL shader backend.\n");
364 }
365 }
366 if (!get_config_key_dword(hkey, appkey, env, "VideoPciDeviceID", &tmpvalue))
367 {
368 int pci_device_id = tmpvalue;
369
370 /* A pci device id is 16-bit */
371 if(pci_device_id > 0xffff)
372 {
373 ERR("Invalid value for VideoPciDeviceID. The value should be smaller or equal to 65535 or 0xffff\n");
374 }
375 else
376 {
377 TRACE("Using PCI Device ID %04x\n", pci_device_id);
378 wined3d_settings.pci_device_id = pci_device_id;
379 }
380 }
381 if (!get_config_key_dword(hkey, appkey, env, "VideoPciVendorID", &tmpvalue))
382 {
383 int pci_vendor_id = tmpvalue;
384
385 /* A pci device id is 16-bit */
386 if(pci_vendor_id > 0xffff)
387 {
388 ERR("Invalid value for VideoPciVendorID. The value should be smaller or equal to 65535 or 0xffff\n");
389 }
390 else
391 {
392 TRACE("Using PCI Vendor ID %04x\n", pci_vendor_id);
393 wined3d_settings.pci_vendor_id = pci_vendor_id;
394 }
395 }
396 if (!get_config_key(hkey, appkey, env, "VideoMemorySize", buffer, size))
397 {
398 int TmpVideoMemorySize = atoi(buffer);
399 if(TmpVideoMemorySize > 0)
400 {
401 wined3d_settings.emulated_textureram = (UINT64)TmpVideoMemorySize *1024*1024;
402 TRACE("Use %iMiB = 0x%s bytes for emulated_textureram\n",
403 TmpVideoMemorySize,
405 }
406 else
407 ERR("VideoMemorySize is %i but must be >0\n", TmpVideoMemorySize);
408 }
409 if (!get_config_key(hkey, appkey, env, "WineLogo", buffer, size))
410 {
411 size_t len = strlen(buffer) + 1;
412
414 ERR("Failed to allocate logo path memory.\n");
415 else
417 }
418 if (!get_config_key_dword(hkey, appkey, env, "MultisampleTextures", &wined3d_settings.multisample_textures))
419 ERR_(winediag)("Setting multisample textures to %#x.\n", wined3d_settings.multisample_textures);
420 if (!get_config_key_dword(hkey, appkey, env, "SampleCount", &wined3d_settings.sample_count))
421 ERR_(winediag)("Forcing sample count to %u. This may not be compatible with all applications.\n",
423 if (!get_config_key(hkey, appkey, env, "CheckFloatConstants", buffer, size)
424 && !strcmp(buffer, "enabled"))
425 {
426 TRACE("Checking relative addressing indices in float constants.\n");
428 }
429 if (!get_config_key_dword(hkey, appkey, env, "strict_shader_math", &wined3d_settings.strict_shader_math))
430 ERR_(winediag)("Setting strict shader math to %#x.\n", wined3d_settings.strict_shader_math);
431 if (!get_config_key_dword(hkey, appkey, env, "MaxShaderModelVS", &wined3d_settings.max_sm_vs))
432 TRACE("Limiting VS shader model to %u.\n", wined3d_settings.max_sm_vs);
433 if (!get_config_key_dword(hkey, appkey, env, "MaxShaderModelHS", &wined3d_settings.max_sm_hs))
434 TRACE("Limiting HS shader model to %u.\n", wined3d_settings.max_sm_hs);
435 if (!get_config_key_dword(hkey, appkey, env, "MaxShaderModelDS", &wined3d_settings.max_sm_ds))
436 TRACE("Limiting DS shader model to %u.\n", wined3d_settings.max_sm_ds);
437 if (!get_config_key_dword(hkey, appkey, env, "MaxShaderModelGS", &wined3d_settings.max_sm_gs))
438 TRACE("Limiting GS shader model to %u.\n", wined3d_settings.max_sm_gs);
439 if (!get_config_key_dword(hkey, appkey, env, "MaxShaderModelPS", &wined3d_settings.max_sm_ps))
440 TRACE("Limiting PS shader model to %u.\n", wined3d_settings.max_sm_ps);
441 if (!get_config_key_dword(hkey, appkey, env, "MaxShaderModelCS", &wined3d_settings.max_sm_cs))
442 TRACE("Limiting CS shader model to %u.\n", wined3d_settings.max_sm_cs);
443 if (!get_config_key(hkey, appkey, env, "renderer", buffer, size))
444 {
445 if (!strcmp(buffer, "vulkan"))
446 {
447 ERR_(winediag)("Using the Vulkan renderer.\n");
449 }
450 else if (!strcmp(buffer, "gl"))
451 {
452 ERR_(winediag)("Using the OpenGL renderer.\n");
454 }
455 else if (!strcmp(buffer, "gdi") || !strcmp(buffer, "no3d"))
456 {
457 ERR_(winediag)("Disabling 3D support.\n");
459 }
460 }
461 if (!get_config_key_dword(hkey, appkey, env, "cb_access_map_w", &tmpvalue) && tmpvalue)
462 {
463 TRACE("Forcing all constant buffers to be write-mappable.\n");
465 }
466 if (!get_config_key_dword(hkey, appkey, env, "ffp_hlsl", &tmpvalue))
467 {
468 ERR_(winediag)("Using the HLSL-based FFP backend.\n");
469 wined3d_settings.ffp_hlsl = tmpvalue;
470 }
471 }
472
473 if (appkey) RegCloseKey( appkey );
474 if (hkey) RegCloseKey( hkey );
475
476 if (!getenv( "VKD3D_DEBUG" ))
477 {
478 if (TRACE_ON(vkd3d)) putenv( "VKD3D_DEBUG=trace" );
479 else if (WARN_ON(vkd3d)) putenv( "VKD3D_DEBUG=warn" );
480 else if (FIXME_ON(vkd3d)) putenv( "VKD3D_DEBUG=fixme" );
481 else if (ERR_ON(vkd3d)) putenv( "VKD3D_DEBUG=err" );
482 else putenv( "VKD3D_DEBUG=none" );
483 }
484 if (!getenv( "VKD3D_SHADER_DEBUG" ))
485 {
486 if (TRACE_ON(vkd3d)) putenv( "VKD3D_SHADER_DEBUG=trace" );
487 else if (WARN_ON(vkd3d)) putenv( "VKD3D_SHADER_DEBUG=warn" );
488 else if (FIXME_ON(vkd3d)) putenv( "VKD3D_SHADER_DEBUG=fixme" );
489 else if (ERR_ON(vkd3d)) putenv( "VKD3D_SHADER_DEBUG=err" );
490 else putenv( "VKD3D_SHADER_DEBUG=none" );
491 }
492
494
495 return TRUE;
496}
COMPILER_DEPENDENT_UINT64 UINT64
Definition: actypes.h:131
#define ARRAY_SIZE(A)
Definition: main.h:20
#define RegCloseKey(hKey)
Definition: registry.h:49
void context_set_tls_idx(DWORD idx)
Definition: context_gl.c:1561
#define malloc
Definition: debug_ros.c:4
LONG WINAPI RegOpenKeyA(HKEY hKey, LPCSTR lpSubKey, PHKEY phkResult)
Definition: reg.c:3234
static __inline const char * wine_dbgstr_longlong(ULONGLONG ll)
Definition: compat.h:49
#define TRACE_ON(x)
Definition: compat.h:75
#define stricmp(_String1, _String2)
Definition: compat.h:24
#define MAX_PATH
Definition: compat.h:34
BOOL WINAPI DisableThreadLibraryCalls(IN HMODULE hLibModule)
Definition: loader.c:85
DWORD WINAPI DECLSPEC_HOTPATCH TlsAlloc(void)
Definition: thread.c:657
char *CDECL getenv(const char *name)
Definition: environ.c:227
_ACRTIMP int __cdecl atoi(const char *)
Definition: string.c:1720
static int putenv(const char *str)
Definition: stdlib.h:294
_ACRTIMP int __cdecl strcmp(const char *, const char *)
Definition: string.c:3324
#define WARN_ON(c)
Definition: module.h:257
#define CS_VREDRAW
Definition: winuser.h:666
LRESULT WINAPI DefWindowProcA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define CS_HREDRAW
Definition: winuser.h:661
#define IDC_ARROW
Definition: winuser.h:695
#define IDI_WINLOGO
Definition: winuser.h:717
ATOM WINAPI RegisterClassA(_In_ CONST WNDCLASSA *)
HICON WINAPI LoadIconA(_In_opt_ HINSTANCE hInstance, _In_ LPCSTR lpIconName)
Definition: cursoricon.c:2429
HCURSOR WINAPI LoadCursorA(_In_opt_ HINSTANCE, _In_ LPCSTR)
Definition: cursoricon.c:2459
#define ERR_(ch,...)
Definition: debug.h:156
strcat
Definition: string.h:92
#define FIXME_ON(ch)
Definition: debug.h:418
#define ERR_ON(ch)
Definition: debug.h:423
HBRUSH hbrBackground
Definition: winuser.h:3278
HICON hIcon
Definition: winuser.h:3276
HINSTANCE hInstance
Definition: winuser.h:3275
HCURSOR hCursor
Definition: winuser.h:3277
int cbWndExtra
Definition: winuser.h:3274
UINT style
Definition: winuser.h:3271
LPCSTR lpszMenuName
Definition: winuser.h:3279
LPCSTR lpszClassName
Definition: winuser.h:3280
WNDPROC lpfnWndProc
Definition: winuser.h:3272
int cbClsExtra
Definition: winuser.h:3273
unsigned int max_sm_hs
unsigned int max_gl_version
enum wined3d_shader_backend shader_backend
unsigned int max_sm_vs
unsigned int cs_multithreaded
unsigned int multisample_textures
unsigned int max_sm_ps
unsigned int max_sm_cs
unsigned int max_sm_ds
unsigned int strict_shader_math
unsigned int sample_count
unsigned int max_sm_gs
unsigned short pci_vendor_id
unsigned short pci_device_id
VKD3D_API void vkd3d_set_log_callback(PFN_vkd3d_log callback)
Definition: vkd3d_main.c:513
#define TLS_OUT_OF_INDEXES
Definition: winbase.h:529
@ WINED3D_RENDERER_VULKAN
Definition: wined3d.h:59
@ WINED3D_RENDERER_OPENGL
Definition: wined3d.h:60
static DWORD get_config_key_dword(HKEY defkey, HKEY appkey, const char *env, const char *name, unsigned int *value)
Definition: wined3d_main.c:216
BOOL wined3d_get_app_name(char *app_name, unsigned int app_name_size)
Definition: wined3d_main.c:241
static void vkd3d_log_callback(const char *fmt, va_list args)
Definition: wined3d_main.c:265
static DWORD get_config_key(HKEY defkey, HKEY appkey, const char *env, const char *name, char *buffer, DWORD size)
Definition: wined3d_main.c:200
@ WINED3D_SHADER_BACKEND_GLSL
@ WINED3D_SHADER_BACKEND_GLSL_VKD3D
#define HKEY_CURRENT_USER
Definition: winreg.h:11

Referenced by DllMain().

◆ wined3d_filter_messages()

BOOL wined3d_filter_messages ( HWND  window,
BOOL  filter 
)

Definition at line 605 of file wined3d_main.c.

606{
607 struct wined3d_wndproc *entry;
608 BOOL ret;
609
611
613 {
615 return FALSE;
616 }
617
618 ret = entry->filter;
619 entry->filter = filter;
620
622
623 return ret;
624}
return ret
Definition: mutex.c:147
unsigned int BOOL
Definition: ntddk_ex.h:94
static IHTMLWindow2 * window
Definition: events.c:77
static struct wined3d_wndproc * wined3d_find_wndproc(HWND window, struct wined3d *wined3d)
Definition: wined3d_main.c:590
static void wined3d_wndproc_mutex_lock(void)
Definition: wined3d_main.c:549
static void wined3d_wndproc_mutex_unlock(void)
Definition: wined3d_main.c:554

Referenced by set_window_state_thread(), wined3d_swapchain_activate(), and wined3d_swapchain_state_set_fullscreen().

◆ wined3d_find_hook()

static struct wined3d_window_hook * wined3d_find_hook ( DWORD  thread_id)
static

Definition at line 855 of file wined3d_main.c.

856{
857 unsigned int i;
858
859 for (i = 0; i < swapchain_state_table.hook_count; ++i)
860 {
861 if (swapchain_state_table.hooks[i].thread_id == thread_id)
862 return &swapchain_state_table.hooks[i];
863 }
864
865 return NULL;
866}
static DWORD thread_id
Definition: protocol.c:164

Referenced by wined3d_swapchain_state_register(), and wined3d_swapchain_state_unregister().

◆ wined3d_find_wndproc()

static struct wined3d_wndproc * wined3d_find_wndproc ( HWND  window,
struct wined3d *  wined3d 
)
static

Definition at line 590 of file wined3d_main.c.

591{
592 unsigned int i;
593
594 for (i = 0; i < wndproc_table.count; ++i)
595 {
596 struct wined3d_wndproc *entry = &wndproc_table.entries[i];
597
598 if (entry->window == window && entry->wined3d == wined3d)
599 return entry;
600 }
601
602 return NULL;
603}

Referenced by wined3d_filter_messages(), wined3d_hook_proc(), wined3d_register_window(), wined3d_unregister_window(), and wined3d_wndproc().

◆ wined3d_get_app_name()

BOOL wined3d_get_app_name ( char *  app_name,
unsigned int  app_name_size 
)

Definition at line 241 of file wined3d_main.c.

242{
243 char buffer[MAX_PATH];
244 unsigned int len;
245 char *p, *name;
246
248 if (!(len && len < MAX_PATH))
249 return FALSE;
250
251 name = buffer;
252 if ((p = strrchr(name, '/' )))
253 name = p + 1;
254 if ((p = strrchr(name, '\\')))
255 name = p + 1;
256
257 len = strlen(name) + 1;
258 if (app_name_size < len)
259 return FALSE;
260
262 return TRUE;
263}
DWORD WINAPI GetModuleFileNameA(HINSTANCE hModule, LPSTR lpFilename, DWORD nSize)
Definition: loader.c:539
_ACRTIMP char *__cdecl strrchr(const char *, int)
Definition: string.c:3303
LPCWSTR app_name
Definition: notevil.c:34

Referenced by wined3d_dll_init(), and wined3d_init_vulkan().

◆ wined3d_get_output_from_window()

static struct wined3d_output * wined3d_get_output_from_window ( const struct wined3d *  wined3d,
HWND  hwnd 
)
static

Definition at line 559 of file wined3d_main.c.

561{
562 unsigned int adapter_idx, output_idx;
563 struct wined3d_adapter *adapter;
565 HMONITOR monitor;
566
567 TRACE("wined3d %p, hwnd %p.\n", wined3d, hwnd);
568
569 monitor = MonitorFromWindow(hwnd, MONITOR_DEFAULTTONEAREST);
570 monitor_info.cbSize = sizeof(monitor_info);
571 if (!GetMonitorInfoW(monitor, (MONITORINFO *)&monitor_info))
572 {
573 ERR("GetMonitorInfoW failed, error %#lx.\n", GetLastError());
574 return NULL;
575 }
576
577 for (adapter_idx = 0; adapter_idx < wined3d->adapter_count; ++adapter_idx)
578 {
579 adapter = wined3d->adapters[adapter_idx];
580 for (output_idx = 0; output_idx < adapter->output_count; ++output_idx)
581 {
582 if (!lstrcmpiW(adapter->outputs[output_idx].device_name, monitor_info.szDevice))
583 return &adapter->outputs[output_idx];
584 }
585 }
586
587 return NULL;
588}
int WINAPI lstrcmpiW(LPCWSTR str1, LPCWSTR str2)
Definition: locale.c:4171
return adapter
HMONITOR WINAPI MonitorFromWindow(HWND, DWORD)
BOOL WINAPI GetMonitorInfoW(_In_ HMONITOR, _Inout_ LPMONITORINFO)
unsigned int adapter_count
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023

Referenced by wined3d_hook_proc().

◆ wined3d_get_renderer()

enum wined3d_renderer CDECL wined3d_get_renderer ( void  )

Definition at line 134 of file wined3d_main.c.

135{
138
140}
@ WINED3D_RENDERER_AUTO
Definition: wined3d.h:58

◆ wined3d_hook_proc()

static LRESULT CALLBACK wined3d_hook_proc ( int  code,
WPARAM  wparam,
LPARAM  lparam 
)
static

Definition at line 667 of file wined3d_main.c.

668{
669 struct wined3d_swapchain_desc swapchain_desc;
671 struct wined3d_wndproc *entry;
672 struct wined3d_output *output;
673 MSG *msg = (MSG *)lparam;
674 unsigned int i;
675
676 /* Handle Alt+Enter. */
677 if (code == HC_ACTION && msg->message == WM_SYSKEYDOWN
678 && msg->wParam == VK_RETURN && (msg->lParam & (KF_ALTDOWN << 16)))
679 {
681
682 for (i = 0; i < swapchain_state_table.state_count; ++i)
683 {
684 state = swapchain_state_table.states[i].state;
685
686 if (state->device_window != msg->hwnd)
687 continue;
688
689 if ((entry = wined3d_find_wndproc(msg->hwnd, state->wined3d))
692 continue;
693
694 swapchain_desc = state->desc;
695 swapchain_desc.windowed = !swapchain_desc.windowed;
696 if (!(output = wined3d_get_output_from_window(state->wined3d, state->device_window)))
697 {
698 ERR("Failed to get output from window %p.\n", state->device_window);
699 break;
700 }
701 swapchain_desc.output = output;
703
705
706 return 1;
707 }
708
710 }
711
712 return CallNextHookEx(0, code, wparam, lparam);
713}
@ lparam
Definition: SystemMenu.c:31
@ wparam
Definition: SystemMenu.c:30
static int state
Definition: maze.c:121
#define msg(x)
Definition: auth_time.c:54
#define KF_ALTDOWN
Definition: winuser.h:2485
#define HC_ACTION
Definition: winuser.h:48
#define VK_RETURN
Definition: winuser.h:2237
LRESULT WINAPI CallNextHookEx(_In_opt_ HHOOK, _In_ int, _In_ WPARAM, _In_ LPARAM)
#define WM_SYSKEYDOWN
Definition: winuser.h:1747
Definition: inflate.c:139
TW_UINT32 TW_UINT16 TW_UINT16 MSG
Definition: twain.h:1829
HRESULT CDECL wined3d_swapchain_state_set_fullscreen(struct wined3d_swapchain_state *state, const struct wined3d_swapchain_desc *swapchain_desc, const struct wined3d_display_mode *mode)
Definition: swapchain.c:2344
#define WINED3D_REGISTER_WINDOW_NO_WINDOW_CHANGES
Definition: wined3d.h:1592
#define WINED3D_REGISTER_WINDOW_NO_ALT_ENTER
Definition: wined3d.h:1593
static struct wined3d_output * wined3d_get_output_from_window(const struct wined3d *wined3d, HWND hwnd)
Definition: wined3d_main.c:559

Referenced by wined3d_swapchain_state_register().

◆ wined3d_mutex_lock()

void WINAPI wined3d_mutex_lock ( void  )

Definition at line 539 of file wined3d_main.c.

540{
542}
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)

Referenced by CF_CreateDirectDraw(), CF_CreateDirectDrawClipper(), d3d10_device_get_constant_buffers(), d3d10_device_GetPredication(), d3d10_device_GSGetSamplers(), d3d10_device_GSGetShader(), d3d10_device_GSGetShaderResources(), d3d10_device_IAGetIndexBuffer(), d3d10_device_IAGetInputLayout(), d3d10_device_IAGetPrimitiveTopology(), d3d10_device_IAGetVertexBuffers(), d3d10_device_OMGetRenderTargets(), d3d10_device_PSGetSamplers(), d3d10_device_PSGetShader(), d3d10_device_PSGetShaderResources(), d3d10_device_RSGetScissorRects(), d3d10_device_RSGetState(), d3d10_device_RSGetViewports(), d3d10_device_SOGetTargets(), d3d10_device_VSGetSamplers(), d3d10_device_VSGetShader(), d3d10_device_VSGetShaderResources(), d3d10_multithread_Enter(), d3d10_query_GetData(), d3d10_query_GetDataSize(), d3d11_compute_shader_init(), d3d11_device_CheckFeatureSupport(), d3d11_device_CheckFormatSupport(), d3d11_device_CheckMultisampleQualityLevels(), d3d11_device_context_CSGetSamplers(), d3d11_device_context_CSGetShader(), d3d11_device_context_CSGetShaderResources(), d3d11_device_context_CSGetUnorderedAccessViews(), d3d11_device_context_DSGetSamplers(), d3d11_device_context_DSGetShader(), d3d11_device_context_DSGetShaderResources(), d3d11_device_context_get_constant_buffers(), d3d11_device_context_GetData(), d3d11_device_context_GetPredication(), d3d11_device_context_GSGetSamplers(), d3d11_device_context_GSGetShader(), d3d11_device_context_GSGetShaderResources(), d3d11_device_context_HSGetSamplers(), d3d11_device_context_HSGetShader(), d3d11_device_context_HSGetShaderResources(), d3d11_device_context_IAGetIndexBuffer(), d3d11_device_context_IAGetInputLayout(), d3d11_device_context_IAGetPrimitiveTopology(), d3d11_device_context_IAGetVertexBuffers(), d3d11_device_context_OMGetBlendState(), d3d11_device_context_OMGetDepthStencilState(), d3d11_device_context_OMGetRenderTargets(), d3d11_device_context_OMGetRenderTargetsAndUnorderedAccessViews(), d3d11_device_context_PSGetSamplers(), d3d11_device_context_PSGetShader(), d3d11_device_context_PSGetShaderResources(), d3d11_device_context_RSGetScissorRects(), d3d11_device_context_RSGetState(), d3d11_device_context_RSGetViewports(), d3d11_device_context_SOGetTargets(), d3d11_device_context_SwapDeviceContextState(), d3d11_device_context_VSGetSamplers(), d3d11_device_context_VSGetShader(), d3d11_device_context_VSGetShaderResources(), d3d11_device_CreateDeviceContextState(), d3d11_domain_shader_init(), d3d11_hull_shader_init(), d3d11_multithread_Enter(), d3d11_query_GetDataSize(), d3d11_swapchain_get_hwnd(), d3d11_swapchain_GetBuffer(), d3d11_swapchain_GetDesc(), d3d11_swapchain_GetDesc1(), d3d11_swapchain_GetFullscreenDesc(), d3d11_swapchain_GetFullscreenState(), d3d11_swapchain_init(), d3d11_swapchain_ResizeBuffers(), d3d11_swapchain_SetFullscreenState(), d3d11_texture2d_GetDesc(), d3d11_unordered_access_view_init(), d3d12_swapchain_GetDesc(), d3d12_swapchain_GetFullscreenDesc(), d3d12_swapchain_GetFullscreenState(), d3d12_swapchain_SetFullscreenState(), d3d2_CreateDevice(), d3d3_CreateDevice(), d3d3_EnumDevices(), d3d7_CreateDevice(), d3d7_EnumDevices(), d3d7_EnumZBufferFormats(), d3d7_EvictManagedTextures(), d3d8_CheckDepthStencilMatch(), d3d8_CheckDeviceFormat(), d3d8_CheckDeviceMultiSampleType(), d3d8_CheckDeviceType(), d3d8_device_ApplyStateBlock(), d3d8_device_BeginScene(), d3d8_device_BeginStateBlock(), d3d8_device_CaptureStateBlock(), d3d8_device_Clear(), d3d8_device_CopyRects(), d3d8_device_create_surface(), d3d8_device_CreateAdditionalSwapChain(), d3d8_device_CreatePixelShader(), d3d8_device_CreateStateBlock(), d3d8_device_CreateVertexShader(), d3d8_device_DeletePixelShader(), d3d8_device_DeleteStateBlock(), d3d8_device_DeleteVertexShader(), d3d8_device_DrawIndexedPrimitive(), d3d8_device_DrawIndexedPrimitiveUP(), d3d8_device_DrawPrimitive(), d3d8_device_DrawPrimitiveUP(), d3d8_device_EndScene(), d3d8_device_EndStateBlock(), d3d8_device_GetAvailableTextureMem(), d3d8_device_GetBackBuffer(), d3d8_device_GetClipPlane(), d3d8_device_GetClipStatus(), d3d8_device_GetCreationParameters(), d3d8_device_GetDepthStencilSurface(), d3d8_device_GetDeviceCaps(), d3d8_device_GetDisplayMode(), d3d8_device_GetFrontBuffer(), d3d8_device_GetGammaRamp(), d3d8_device_GetIndices(), d3d8_device_GetLight(), d3d8_device_GetLightEnable(), d3d8_device_GetMaterial(), d3d8_device_GetPixelShader(), d3d8_device_GetPixelShaderConstant(), d3d8_device_GetPixelShaderFunction(), d3d8_device_GetRasterStatus(), d3d8_device_GetRenderState(), d3d8_device_GetRenderTarget(), d3d8_device_GetStreamSource(), d3d8_device_GetTexture(), d3d8_device_GetTextureStageState(), d3d8_device_GetTransform(), d3d8_device_GetVertexShader(), d3d8_device_GetVertexShaderConstant(), d3d8_device_GetVertexShaderDeclaration(), d3d8_device_GetVertexShaderFunction(), d3d8_device_GetViewport(), d3d8_device_LightEnable(), d3d8_device_MultiplyTransform(), d3d8_device_ProcessVertices(), d3d8_device_Release(), d3d8_device_Reset(), d3d8_device_ResourceManagerDiscardBytes(), d3d8_device_SetClipPlane(), d3d8_device_SetClipStatus(), d3d8_device_SetCursorPosition(), d3d8_device_SetCursorProperties(), d3d8_device_SetGammaRamp(), d3d8_device_SetIndices(), d3d8_device_SetLight(), d3d8_device_SetMaterial(), d3d8_device_SetPixelShader(), d3d8_device_SetPixelShaderConstant(), d3d8_device_SetRenderState(), d3d8_device_SetRenderTarget(), d3d8_device_SetStreamSource(), d3d8_device_SetTexture(), d3d8_device_SetTextureStageState(), d3d8_device_SetTransform(), d3d8_device_SetVertexShader(), d3d8_device_SetVertexShaderConstant(), d3d8_device_SetViewport(), d3d8_device_ShowCursor(), d3d8_device_UpdateTexture(), d3d8_device_ValidateDevice(), d3d8_EnumAdapterModes(), d3d8_GetAdapterDisplayMode(), d3d8_GetAdapterModeCount(), d3d8_GetAdapterMonitor(), d3d8_GetDeviceCaps(), d3d8_indexbuffer_GetDesc(), d3d8_indexbuffer_GetPriority(), d3d8_indexbuffer_PreLoad(), d3d8_indexbuffer_SetPriority(), d3d8_init(), d3d8_pixel_shader_destroy(), d3d8_pixel_shader_init(), d3d8_RegisterSoftwareDevice(), d3d8_Release(), d3d8_resource_free_private_data(), d3d8_resource_get_private_data(), d3d8_resource_set_private_data(), d3d8_surface_GetDesc(), d3d8_surface_LockRect(), d3d8_swapchain_GetBackBuffer(), d3d8_texture_2d_AddDirtyRect(), d3d8_texture_2d_GetLevelCount(), d3d8_texture_2d_GetLevelDesc(), d3d8_texture_2d_GetLOD(), d3d8_texture_2d_GetPriority(), d3d8_texture_2d_GetSurfaceLevel(), d3d8_texture_2d_LockRect(), d3d8_texture_2d_SetLOD(), d3d8_texture_2d_SetPriority(), d3d8_texture_2d_UnlockRect(), d3d8_texture_3d_AddDirtyBox(), d3d8_texture_3d_GetLevelCount(), d3d8_texture_3d_GetLevelDesc(), d3d8_texture_3d_GetLOD(), d3d8_texture_3d_GetPriority(), d3d8_texture_3d_GetVolumeLevel(), d3d8_texture_3d_LockBox(), d3d8_texture_3d_SetLOD(), d3d8_texture_3d_SetPriority(), d3d8_texture_3d_UnlockBox(), d3d8_texture_cube_AddDirtyRect(), d3d8_texture_cube_GetCubeMapSurface(), d3d8_texture_cube_GetLevelCount(), d3d8_texture_cube_GetLevelDesc(), d3d8_texture_cube_GetLOD(), d3d8_texture_cube_GetPriority(), d3d8_texture_cube_LockRect(), d3d8_texture_cube_SetLOD(), d3d8_texture_cube_SetPriority(), d3d8_texture_cube_UnlockRect(), d3d8_texture_decref(), d3d8_texture_incref(), d3d8_texture_init(), d3d8_texture_preload(), d3d8_vertex_declaration_init(), d3d8_vertex_shader_destroy(), d3d8_vertex_shader_init(), d3d8_vertexbuffer_GetDesc(), d3d8_vertexbuffer_GetPriority(), d3d8_vertexbuffer_PreLoad(), d3d8_vertexbuffer_SetPriority(), d3d8_volume_GetDesc(), d3d9_caps_from_wined3dcaps(), d3d9_CheckDepthStencilMatch(), d3d9_CheckDeviceFormat(), d3d9_CheckDeviceFormatConversion(), d3d9_CheckDeviceMultiSampleType(), d3d9_CheckDeviceType(), d3d9_device_BeginScene(), d3d9_device_BeginStateBlock(), d3d9_device_CheckDeviceState(), d3d9_device_Clear(), d3d9_device_ColorFill(), d3d9_device_create_surface(), d3d9_device_CreateAdditionalSwapChain(), d3d9_device_CreateStateBlock(), d3d9_device_CreateTexture(), d3d9_device_DrawIndexedPrimitive(), d3d9_device_DrawIndexedPrimitiveUP(), d3d9_device_DrawPrimitive(), d3d9_device_DrawPrimitiveUP(), d3d9_device_EndScene(), d3d9_device_EndStateBlock(), d3d9_device_EvictManagedResources(), d3d9_device_GetAvailableTextureMem(), d3d9_device_GetBackBuffer(), d3d9_device_GetClipPlane(), d3d9_device_GetClipStatus(), d3d9_device_GetCreationParameters(), d3d9_device_GetDepthStencilSurface(), d3d9_device_GetDeviceCaps(), d3d9_device_GetDisplayMode(), d3d9_device_GetDisplayModeEx(), d3d9_device_GetFrontBufferData(), d3d9_device_GetFVF(), d3d9_device_GetGammaRamp(), d3d9_device_GetIndices(), d3d9_device_GetLight(), d3d9_device_GetLightEnable(), d3d9_device_GetMaterial(), d3d9_device_GetMaximumFrameLatency(), d3d9_device_GetNPatchMode(), d3d9_device_GetNumberOfSwapChains(), d3d9_device_GetPixelShader(), d3d9_device_GetPixelShaderConstantB(), d3d9_device_GetPixelShaderConstantF(), d3d9_device_GetPixelShaderConstantI(), d3d9_device_GetRasterStatus(), d3d9_device_GetRenderState(), d3d9_device_GetRenderTarget(), d3d9_device_GetRenderTargetData(), d3d9_device_GetSamplerState(), d3d9_device_GetScissorRect(), d3d9_device_GetSoftwareVertexProcessing(), d3d9_device_GetStreamSource(), d3d9_device_GetStreamSourceFreq(), d3d9_device_GetSwapChain(), d3d9_device_GetTexture(), d3d9_device_GetTextureStageState(), d3d9_device_GetTransform(), d3d9_device_GetVertexDeclaration(), d3d9_device_GetVertexShader(), d3d9_device_GetVertexShaderConstantB(), d3d9_device_GetVertexShaderConstantF(), d3d9_device_GetVertexShaderConstantI(), d3d9_device_GetViewport(), d3d9_device_LightEnable(), d3d9_device_MultiplyTransform(), d3d9_device_Present(), d3d9_device_PresentEx(), d3d9_device_ProcessVertices(), d3d9_device_Release(), d3d9_device_reset(), d3d9_device_SetClipPlane(), d3d9_device_SetClipStatus(), d3d9_device_SetCursorPosition(), d3d9_device_SetCursorProperties(), d3d9_device_SetDepthStencilSurface(), d3d9_device_SetDialogBoxMode(), d3d9_device_SetFVF(), d3d9_device_SetGammaRamp(), d3d9_device_SetIndices(), d3d9_device_SetLight(), d3d9_device_SetMaterial(), d3d9_device_SetMaximumFrameLatency(), d3d9_device_SetNPatchMode(), d3d9_device_SetPixelShader(), d3d9_device_SetPixelShaderConstantB(), d3d9_device_SetPixelShaderConstantF(), d3d9_device_SetPixelShaderConstantI(), d3d9_device_SetRenderState(), d3d9_device_SetRenderTarget(), d3d9_device_SetSamplerState(), d3d9_device_SetScissorRect(), d3d9_device_SetSoftwareVertexProcessing(), d3d9_device_SetStreamSource(), d3d9_device_SetStreamSourceFreq(), d3d9_device_SetTexture(), d3d9_device_SetTextureStageState(), d3d9_device_SetTransform(), d3d9_device_SetVertexDeclaration(), d3d9_device_SetVertexShader(), d3d9_device_SetVertexShaderConstantB(), d3d9_device_SetVertexShaderConstantF(), d3d9_device_SetVertexShaderConstantI(), d3d9_device_SetViewport(), d3d9_device_ShowCursor(), d3d9_device_StretchRect(), d3d9_device_UpdateSurface(), d3d9_device_UpdateTexture(), d3d9_device_ValidateDevice(), d3d9_EnumAdapterModes(), d3d9_EnumAdapterModesEx(), d3d9_GetAdapterDisplayMode(), d3d9_GetAdapterDisplayModeEx(), d3d9_GetAdapterIdentifier(), d3d9_GetAdapterModeCount(), d3d9_GetAdapterModeCountEx(), d3d9_GetAdapterMonitor(), d3d9_GetDeviceCaps(), d3d9_indexbuffer_GetDesc(), d3d9_indexbuffer_GetPriority(), d3d9_indexbuffer_PreLoad(), d3d9_indexbuffer_SetPriority(), d3d9_init(), d3d9_pixelshader_GetFunction(), d3d9_query_GetData(), d3d9_query_GetType(), d3d9_RegisterSoftwareDevice(), d3d9_resource_free_private_data(), d3d9_resource_get_private_data(), d3d9_resource_set_private_data(), d3d9_stateblock_Apply(), d3d9_stateblock_Capture(), d3d9_surface_GetDC(), d3d9_surface_GetDesc(), d3d9_surface_PreLoad(), d3d9_surface_ReleaseDC(), d3d9_surface_UnlockRect(), d3d9_swapchain_GetBackBuffer(), d3d9_swapchain_GetDisplayMode(), d3d9_swapchain_GetDisplayModeEx(), d3d9_swapchain_GetFrontBufferData(), d3d9_swapchain_GetPresentParameters(), d3d9_swapchain_GetRasterStatus(), d3d9_texture_2d_AddDirtyRect(), d3d9_texture_2d_GenerateMipSubLevels(), d3d9_texture_2d_GetLevelCount(), d3d9_texture_2d_GetLevelDesc(), d3d9_texture_2d_GetLOD(), d3d9_texture_2d_GetPriority(), d3d9_texture_2d_GetSurfaceLevel(), d3d9_texture_2d_LockRect(), d3d9_texture_2d_SetLOD(), d3d9_texture_2d_SetPriority(), d3d9_texture_2d_UnlockRect(), d3d9_texture_3d_AddDirtyBox(), d3d9_texture_3d_GetLevelCount(), d3d9_texture_3d_GetLevelDesc(), d3d9_texture_3d_GetLOD(), d3d9_texture_3d_GetPriority(), d3d9_texture_3d_GetVolumeLevel(), d3d9_texture_3d_LockBox(), d3d9_texture_3d_SetLOD(), d3d9_texture_3d_SetPriority(), d3d9_texture_3d_UnlockBox(), d3d9_texture_cube_AddDirtyRect(), d3d9_texture_cube_GenerateMipSubLevels(), d3d9_texture_cube_GetCubeMapSurface(), d3d9_texture_cube_GetLevelCount(), d3d9_texture_cube_GetLevelDesc(), d3d9_texture_cube_GetLOD(), d3d9_texture_cube_GetPriority(), d3d9_texture_cube_LockRect(), d3d9_texture_cube_SetLOD(), d3d9_texture_cube_SetPriority(), d3d9_texture_cube_UnlockRect(), d3d9_texture_decref(), d3d9_texture_incref(), d3d9_texture_init(), d3d9_texture_preload(), d3d9_vertexbuffer_GetDesc(), d3d9_vertexbuffer_GetPriority(), d3d9_vertexbuffer_PreLoad(), d3d9_vertexbuffer_SetPriority(), d3d9_vertexshader_GetFunction(), d3d9_volume_GetDesc(), d3d_blend_state_create(), d3d_buffer_init(), d3d_depthstencil_state_create(), d3d_depthstencil_view_init(), d3d_device1_CreateMatrix(), d3d_device1_DeleteMatrix(), d3d_device1_Execute(), d3d_device1_GetMatrix(), d3d_device1_SetMatrix(), d3d_device2_EnumTextureFormats(), d3d_device2_SetRenderTarget(), d3d_device2_SwapTextureHandles(), d3d_device3_AddViewport(), d3d_device3_Begin(), d3d_device3_DeleteViewport(), d3d_device3_GetCurrentViewport(), d3d_device3_GetLightState(), d3d_device3_GetRenderState(), d3d_device3_GetTransform(), d3d_device3_MultiplyTransform(), d3d_device3_NextViewport(), d3d_device3_SetCurrentViewport(), d3d_device3_SetLightState(), d3d_device3_SetRenderState(), d3d_device3_SetRenderTarget(), d3d_device3_SetTexture(), d3d_device3_SetTransform(), d3d_device3_Vertex(), d3d_device7_ApplyStateBlock(), d3d_device7_BeginScene(), d3d_device7_BeginStateBlock(), d3d_device7_CaptureStateBlock(), d3d_device7_Clear(), d3d_device7_CreateStateBlock(), d3d_device7_DeleteStateBlock(), d3d_device7_DrawIndexedPrimitive(), d3d_device7_DrawIndexedPrimitiveStrided(), d3d_device7_DrawIndexedPrimitiveVB(), d3d_device7_DrawPrimitive(), d3d_device7_DrawPrimitiveStrided(), d3d_device7_DrawPrimitiveVB(), d3d_device7_EndScene(), d3d_device7_EndStateBlock(), d3d_device7_EnumTextureFormats(), d3d_device7_GetClipPlane(), d3d_device7_GetLight(), d3d_device7_GetLightEnable(), d3d_device7_GetMaterial(), d3d_device7_GetRenderState(), d3d_device7_GetRenderTarget(), d3d_device7_GetTexture(), d3d_device7_GetTextureStageState(), d3d_device7_GetTransform(), d3d_device7_GetViewport(), d3d_device7_LightEnable(), d3d_device7_Load(), d3d_device7_MultiplyTransform(), d3d_device7_PreLoad(), d3d_device7_SetClipPlane(), d3d_device7_SetLight(), d3d_device7_SetMaterial(), d3d_device7_SetRenderState(), d3d_device7_SetRenderTarget(), d3d_device7_SetTexture(), d3d_device7_SetTextureStageState(), d3d_device7_SetTransform(), d3d_device7_SetViewport(), d3d_device7_ValidateDevice(), d3d_device_inner_Release(), d3d_geometry_shader_init(), d3d_get_private_data(), d3d_input_layout_init(), d3d_light_GetLight(), d3d_light_SetLight(), d3d_material3_GetHandle(), d3d_material3_GetMaterial(), d3d_material3_Release(), d3d_material3_SetMaterial(), d3d_pixel_shader_init(), d3d_query_init(), d3d_rasterizer_state_create(), d3d_rendertarget_view_init(), d3d_sampler_state_create(), d3d_set_private_data(), d3d_set_private_data_interface(), d3d_shader_resource_view_init(), d3d_texture1d_create(), d3d_texture2_GetHandle(), d3d_texture2_Load(), d3d_texture2d_create(), d3d_texture3d_init(), d3d_vertex_buffer7_GetVertexBufferDesc(), d3d_vertex_buffer7_Lock(), d3d_vertex_buffer7_Optimize(), d3d_vertex_buffer7_ProcessVertices(), d3d_vertex_buffer7_Release(), d3d_vertex_buffer_create(), d3d_vertex_shader_init(), d3d_video_decoder_output_view_init(), d3d_viewport_AddLight(), d3d_viewport_Clear(), d3d_viewport_Clear2(), d3d_viewport_DeleteLight(), d3d_viewport_GetBackground(), d3d_viewport_GetViewport(), d3d_viewport_GetViewport2(), d3d_viewport_NextLight(), d3d_viewport_SetBackground(), d3d_viewport_SetViewport(), d3d_viewport_SetViewport2(), d3d_viewport_TransformVertices(), ddraw1_CreateSurface(), ddraw2_CreateSurface(), ddraw4_CreateSurface(), ddraw7_CreatePalette(), ddraw7_CreateSurface(), ddraw7_EnumDisplayModes(), ddraw7_EnumSurfaces(), ddraw7_FlipToGDISurface(), ddraw7_GetAvailableVidMem(), ddraw7_GetCaps(), ddraw7_GetDeviceIdentifier(), ddraw7_GetDisplayMode(), ddraw7_GetGDISurface(), ddraw7_GetMonitorFrequency(), ddraw7_GetScanLine(), ddraw7_GetSurfaceFromDC(), ddraw7_GetVerticalBlankStatus(), ddraw7_RestoreDisplayMode(), ddraw7_SetDisplayMode(), ddraw_clipper_GetClipList(), ddraw_clipper_GetHWnd(), ddraw_clipper_Initialize(), ddraw_clipper_SetClipList(), ddraw_clipper_SetHWnd(), ddraw_destroy(), ddraw_enumerate_secondary_devices(), ddraw_gamma_control_GetGammaRamp(), ddraw_gamma_control_SetGammaRamp(), ddraw_get_d3dcaps(), ddraw_palette_GetCaps(), ddraw_palette_GetEntries(), ddraw_palette_Release(), ddraw_palette_SetEntries(), ddraw_set_cooperative_level(), ddraw_surface1_Blt(), ddraw_surface1_Flip(), ddraw_surface1_Unlock(), ddraw_surface3_GetSurfaceDesc(), ddraw_surface7_BltFast(), ddraw_surface7_EnumAttachedSurfaces(), ddraw_surface7_FreePrivateData(), ddraw_surface7_GetAttachedSurface(), ddraw_surface7_GetClipper(), ddraw_surface7_GetColorKey(), ddraw_surface7_GetDC(), ddraw_surface7_GetLOD(), ddraw_surface7_GetOverlayPosition(), ddraw_surface7_GetPalette(), ddraw_surface7_GetPixelFormat(), ddraw_surface7_GetPriority(), ddraw_surface7_GetPrivateData(), ddraw_surface7_GetSurfaceDesc(), ddraw_surface7_QueryInterface(), ddraw_surface7_ReleaseDC(), ddraw_surface7_SetClipper(), ddraw_surface7_SetLOD(), ddraw_surface7_SetOverlayPosition(), ddraw_surface7_SetPriority(), ddraw_surface7_SetPrivateData(), ddraw_surface7_SetSurfaceDesc(), ddraw_surface7_UpdateOverlay(), ddraw_surface7_UpdateOverlayZOrder(), ddraw_surface_add_iface(), ddraw_surface_attach_surface(), ddraw_surface_delete_attached_surface(), ddraw_surface_release_iface(), ddraw_surface_set_color_key(), ddraw_surface_set_palette(), device_init(), DirectDrawCreate(), DirectDrawCreateClipper(), DirectDrawCreateEx(), dxgi_adapter_CheckInterfaceSupport(), dxgi_device_CreateSurface(), dxgi_device_GetMaximumFrameLatency(), dxgi_device_init(), dxgi_device_Release(), dxgi_device_SetMaximumFrameLatency(), dxgi_factory_EnumAdapters1(), dxgi_factory_get_device_window(), dxgi_factory_init(), dxgi_get_private_data(), dxgi_output_find_closest_matching_mode(), dxgi_output_get_display_mode_list(), dxgi_output_GetDesc(), dxgi_output_GetDesc1(), dxgi_output_ReleaseOwnership(), dxgi_output_SetGammaControl(), dxgi_output_TakeOwnership(), dxgi_set_private_data(), dxgi_set_private_data_interface(), dxgi_surface_GetDC(), dxgi_surface_GetDesc(), dxgi_surface_ReleaseDC(), DXGID3D10RegisterLayers(), get_layer(), GetSurfaceFromDC(), indexbuffer_init(), notification_thread_func(), pixelshader_init(), prepare_clip_space_planes(), query_init(), register_d3d10core_layers(), stateblock_init(), surface_lock(), vertexbuffer_init(), vertexdeclaration_init(), vertexshader_init(), wined3d_adapter_get_identifier(), wined3d_adapter_register_budget_change_notification(), wined3d_adapter_unregister_budget_change_notification(), wined3d_atomic_decrement_mutex_lock(), wined3d_buffer_decref(), wined3d_command_list_decref(), wined3d_cs_emit_present(), wined3d_decref(), wined3d_device_context_lock(), wined3d_device_decref(), wined3d_palette_decref(), wined3d_query_decref(), wined3d_rendertarget_view_decref(), wined3d_shader_decref(), wined3d_shader_resource_view_destroy(), wined3d_stateblock_decref(), wined3d_swapchain_create(), wined3d_swapchain_decref(), wined3d_swapchain_init(), wined3d_swapchain_present(), wined3d_swapchain_state_resize_target(), wined3d_texture_decref(), wined3d_unordered_access_view_decref(), and wined3d_vertex_declaration_decref().

◆ wined3d_mutex_unlock()

void WINAPI wined3d_mutex_unlock ( void  )

Definition at line 544 of file wined3d_main.c.

545{
547}
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)

Referenced by CF_CreateDirectDraw(), CF_CreateDirectDrawClipper(), d3d10_device_get_constant_buffers(), d3d10_device_GetPredication(), d3d10_device_GSGetSamplers(), d3d10_device_GSGetShader(), d3d10_device_GSGetShaderResources(), d3d10_device_IAGetIndexBuffer(), d3d10_device_IAGetInputLayout(), d3d10_device_IAGetPrimitiveTopology(), d3d10_device_IAGetVertexBuffers(), d3d10_device_OMGetRenderTargets(), d3d10_device_PSGetSamplers(), d3d10_device_PSGetShader(), d3d10_device_PSGetShaderResources(), d3d10_device_RSGetScissorRects(), d3d10_device_RSGetState(), d3d10_device_RSGetViewports(), d3d10_device_SOGetTargets(), d3d10_device_VSGetSamplers(), d3d10_device_VSGetShader(), d3d10_device_VSGetShaderResources(), d3d10_multithread_Leave(), d3d10_query_GetData(), d3d10_query_GetDataSize(), d3d11_compute_shader_init(), d3d11_device_CheckFeatureSupport(), d3d11_device_CheckFormatSupport(), d3d11_device_CheckMultisampleQualityLevels(), d3d11_device_context_CSGetSamplers(), d3d11_device_context_CSGetShader(), d3d11_device_context_CSGetShaderResources(), d3d11_device_context_CSGetUnorderedAccessViews(), d3d11_device_context_DSGetSamplers(), d3d11_device_context_DSGetShader(), d3d11_device_context_DSGetShaderResources(), d3d11_device_context_get_constant_buffers(), d3d11_device_context_GetData(), d3d11_device_context_GetPredication(), d3d11_device_context_GSGetSamplers(), d3d11_device_context_GSGetShader(), d3d11_device_context_GSGetShaderResources(), d3d11_device_context_HSGetSamplers(), d3d11_device_context_HSGetShader(), d3d11_device_context_HSGetShaderResources(), d3d11_device_context_IAGetIndexBuffer(), d3d11_device_context_IAGetInputLayout(), d3d11_device_context_IAGetPrimitiveTopology(), d3d11_device_context_IAGetVertexBuffers(), d3d11_device_context_OMGetBlendState(), d3d11_device_context_OMGetDepthStencilState(), d3d11_device_context_OMGetRenderTargets(), d3d11_device_context_OMGetRenderTargetsAndUnorderedAccessViews(), d3d11_device_context_PSGetSamplers(), d3d11_device_context_PSGetShader(), d3d11_device_context_PSGetShaderResources(), d3d11_device_context_RSGetScissorRects(), d3d11_device_context_RSGetState(), d3d11_device_context_RSGetViewports(), d3d11_device_context_SOGetTargets(), d3d11_device_context_SwapDeviceContextState(), d3d11_device_context_VSGetSamplers(), d3d11_device_context_VSGetShader(), d3d11_device_context_VSGetShaderResources(), d3d11_device_CreateDeviceContextState(), d3d11_domain_shader_init(), d3d11_hull_shader_init(), d3d11_multithread_Leave(), d3d11_query_GetDataSize(), d3d11_swapchain_get_hwnd(), d3d11_swapchain_GetBuffer(), d3d11_swapchain_GetDesc(), d3d11_swapchain_GetDesc1(), d3d11_swapchain_GetFullscreenDesc(), d3d11_swapchain_GetFullscreenState(), d3d11_swapchain_init(), d3d11_swapchain_ResizeBuffers(), d3d11_swapchain_SetFullscreenState(), d3d11_texture2d_GetDesc(), d3d11_unordered_access_view_init(), d3d12_swapchain_GetDesc(), d3d12_swapchain_GetFullscreenDesc(), d3d12_swapchain_GetFullscreenState(), d3d12_swapchain_SetFullscreenState(), d3d2_CreateDevice(), d3d3_CreateDevice(), d3d3_EnumDevices(), d3d7_CreateDevice(), d3d7_EnumDevices(), d3d7_EnumZBufferFormats(), d3d7_EvictManagedTextures(), d3d8_CheckDepthStencilMatch(), d3d8_CheckDeviceFormat(), d3d8_CheckDeviceMultiSampleType(), d3d8_CheckDeviceType(), d3d8_device_ApplyStateBlock(), d3d8_device_BeginScene(), d3d8_device_BeginStateBlock(), d3d8_device_CaptureStateBlock(), d3d8_device_Clear(), d3d8_device_CopyRects(), d3d8_device_create_surface(), d3d8_device_CreateAdditionalSwapChain(), d3d8_device_CreatePixelShader(), d3d8_device_CreateStateBlock(), d3d8_device_CreateVertexShader(), d3d8_device_DeletePixelShader(), d3d8_device_DeleteStateBlock(), d3d8_device_DeleteVertexShader(), d3d8_device_DrawIndexedPrimitive(), d3d8_device_DrawIndexedPrimitiveUP(), d3d8_device_DrawPrimitive(), d3d8_device_DrawPrimitiveUP(), d3d8_device_EndScene(), d3d8_device_EndStateBlock(), d3d8_device_GetAvailableTextureMem(), d3d8_device_GetBackBuffer(), d3d8_device_GetClipPlane(), d3d8_device_GetClipStatus(), d3d8_device_GetCreationParameters(), d3d8_device_GetDepthStencilSurface(), d3d8_device_GetDeviceCaps(), d3d8_device_GetDisplayMode(), d3d8_device_GetFrontBuffer(), d3d8_device_GetGammaRamp(), d3d8_device_GetIndices(), d3d8_device_GetLight(), d3d8_device_GetLightEnable(), d3d8_device_GetMaterial(), d3d8_device_GetPixelShader(), d3d8_device_GetPixelShaderConstant(), d3d8_device_GetPixelShaderFunction(), d3d8_device_GetRasterStatus(), d3d8_device_GetRenderState(), d3d8_device_GetRenderTarget(), d3d8_device_GetStreamSource(), d3d8_device_GetTexture(), d3d8_device_GetTextureStageState(), d3d8_device_GetTransform(), d3d8_device_GetVertexShader(), d3d8_device_GetVertexShaderConstant(), d3d8_device_GetVertexShaderDeclaration(), d3d8_device_GetVertexShaderFunction(), d3d8_device_GetViewport(), d3d8_device_LightEnable(), d3d8_device_MultiplyTransform(), d3d8_device_ProcessVertices(), d3d8_device_Release(), d3d8_device_Reset(), d3d8_device_ResourceManagerDiscardBytes(), d3d8_device_SetClipPlane(), d3d8_device_SetClipStatus(), d3d8_device_SetCursorPosition(), d3d8_device_SetCursorProperties(), d3d8_device_SetGammaRamp(), d3d8_device_SetIndices(), d3d8_device_SetLight(), d3d8_device_SetMaterial(), d3d8_device_SetPixelShader(), d3d8_device_SetPixelShaderConstant(), d3d8_device_SetRenderState(), d3d8_device_SetRenderTarget(), d3d8_device_SetStreamSource(), d3d8_device_SetTexture(), d3d8_device_SetTextureStageState(), d3d8_device_SetTransform(), d3d8_device_SetVertexShader(), d3d8_device_SetVertexShaderConstant(), d3d8_device_SetViewport(), d3d8_device_ShowCursor(), d3d8_device_UpdateTexture(), d3d8_device_ValidateDevice(), d3d8_EnumAdapterModes(), d3d8_GetAdapterDisplayMode(), d3d8_GetAdapterModeCount(), d3d8_GetAdapterMonitor(), d3d8_GetDeviceCaps(), d3d8_indexbuffer_GetDesc(), d3d8_indexbuffer_GetPriority(), d3d8_indexbuffer_PreLoad(), d3d8_indexbuffer_SetPriority(), d3d8_init(), d3d8_pixel_shader_destroy(), d3d8_pixel_shader_init(), d3d8_RegisterSoftwareDevice(), d3d8_Release(), d3d8_resource_free_private_data(), d3d8_resource_get_private_data(), d3d8_resource_set_private_data(), d3d8_surface_GetDesc(), d3d8_surface_LockRect(), d3d8_swapchain_GetBackBuffer(), d3d8_texture_2d_AddDirtyRect(), d3d8_texture_2d_GetLevelCount(), d3d8_texture_2d_GetLevelDesc(), d3d8_texture_2d_GetLOD(), d3d8_texture_2d_GetPriority(), d3d8_texture_2d_GetSurfaceLevel(), d3d8_texture_2d_LockRect(), d3d8_texture_2d_SetLOD(), d3d8_texture_2d_SetPriority(), d3d8_texture_2d_UnlockRect(), d3d8_texture_3d_AddDirtyBox(), d3d8_texture_3d_GetLevelCount(), d3d8_texture_3d_GetLevelDesc(), d3d8_texture_3d_GetLOD(), d3d8_texture_3d_GetPriority(), d3d8_texture_3d_GetVolumeLevel(), d3d8_texture_3d_LockBox(), d3d8_texture_3d_SetLOD(), d3d8_texture_3d_SetPriority(), d3d8_texture_3d_UnlockBox(), d3d8_texture_cube_AddDirtyRect(), d3d8_texture_cube_GetCubeMapSurface(), d3d8_texture_cube_GetLevelCount(), d3d8_texture_cube_GetLevelDesc(), d3d8_texture_cube_GetLOD(), d3d8_texture_cube_GetPriority(), d3d8_texture_cube_LockRect(), d3d8_texture_cube_SetLOD(), d3d8_texture_cube_SetPriority(), d3d8_texture_cube_UnlockRect(), d3d8_texture_decref(), d3d8_texture_incref(), d3d8_texture_init(), d3d8_texture_preload(), d3d8_vertex_declaration_init(), d3d8_vertex_shader_destroy(), d3d8_vertex_shader_init(), d3d8_vertexbuffer_GetDesc(), d3d8_vertexbuffer_GetPriority(), d3d8_vertexbuffer_PreLoad(), d3d8_vertexbuffer_SetPriority(), d3d8_volume_GetDesc(), d3d9_caps_from_wined3dcaps(), d3d9_CheckDepthStencilMatch(), d3d9_CheckDeviceFormat(), d3d9_CheckDeviceFormatConversion(), d3d9_CheckDeviceMultiSampleType(), d3d9_CheckDeviceType(), d3d9_device_BeginScene(), d3d9_device_BeginStateBlock(), d3d9_device_CheckDeviceState(), d3d9_device_Clear(), d3d9_device_ColorFill(), d3d9_device_create_surface(), d3d9_device_CreateAdditionalSwapChain(), d3d9_device_CreateStateBlock(), d3d9_device_CreateTexture(), d3d9_device_DrawIndexedPrimitive(), d3d9_device_DrawIndexedPrimitiveUP(), d3d9_device_DrawPrimitive(), d3d9_device_DrawPrimitiveUP(), d3d9_device_EndScene(), d3d9_device_EndStateBlock(), d3d9_device_EvictManagedResources(), d3d9_device_GetAvailableTextureMem(), d3d9_device_GetBackBuffer(), d3d9_device_GetClipPlane(), d3d9_device_GetClipStatus(), d3d9_device_GetCreationParameters(), d3d9_device_GetDepthStencilSurface(), d3d9_device_GetDeviceCaps(), d3d9_device_GetDisplayMode(), d3d9_device_GetDisplayModeEx(), d3d9_device_GetFrontBufferData(), d3d9_device_GetFVF(), d3d9_device_GetGammaRamp(), d3d9_device_GetIndices(), d3d9_device_GetLight(), d3d9_device_GetLightEnable(), d3d9_device_GetMaterial(), d3d9_device_GetMaximumFrameLatency(), d3d9_device_GetNPatchMode(), d3d9_device_GetNumberOfSwapChains(), d3d9_device_GetPixelShader(), d3d9_device_GetPixelShaderConstantB(), d3d9_device_GetPixelShaderConstantF(), d3d9_device_GetPixelShaderConstantI(), d3d9_device_GetRasterStatus(), d3d9_device_GetRenderState(), d3d9_device_GetRenderTarget(), d3d9_device_GetRenderTargetData(), d3d9_device_GetSamplerState(), d3d9_device_GetScissorRect(), d3d9_device_GetSoftwareVertexProcessing(), d3d9_device_GetStreamSource(), d3d9_device_GetStreamSourceFreq(), d3d9_device_GetSwapChain(), d3d9_device_GetTexture(), d3d9_device_GetTextureStageState(), d3d9_device_GetTransform(), d3d9_device_GetVertexDeclaration(), d3d9_device_GetVertexShader(), d3d9_device_GetVertexShaderConstantB(), d3d9_device_GetVertexShaderConstantF(), d3d9_device_GetVertexShaderConstantI(), d3d9_device_GetViewport(), d3d9_device_LightEnable(), d3d9_device_MultiplyTransform(), d3d9_device_Present(), d3d9_device_PresentEx(), d3d9_device_ProcessVertices(), d3d9_device_Release(), d3d9_device_reset(), d3d9_device_SetClipPlane(), d3d9_device_SetClipStatus(), d3d9_device_SetCursorPosition(), d3d9_device_SetCursorProperties(), d3d9_device_SetDepthStencilSurface(), d3d9_device_SetDialogBoxMode(), d3d9_device_SetFVF(), d3d9_device_SetGammaRamp(), d3d9_device_SetIndices(), d3d9_device_SetLight(), d3d9_device_SetMaterial(), d3d9_device_SetMaximumFrameLatency(), d3d9_device_SetNPatchMode(), d3d9_device_SetPixelShader(), d3d9_device_SetPixelShaderConstantB(), d3d9_device_SetPixelShaderConstantF(), d3d9_device_SetPixelShaderConstantI(), d3d9_device_SetRenderState(), d3d9_device_SetRenderTarget(), d3d9_device_SetSamplerState(), d3d9_device_SetScissorRect(), d3d9_device_SetSoftwareVertexProcessing(), d3d9_device_SetStreamSource(), d3d9_device_SetStreamSourceFreq(), d3d9_device_SetTexture(), d3d9_device_SetTextureStageState(), d3d9_device_SetTransform(), d3d9_device_SetVertexDeclaration(), d3d9_device_SetVertexShader(), d3d9_device_SetVertexShaderConstantB(), d3d9_device_SetVertexShaderConstantF(), d3d9_device_SetVertexShaderConstantI(), d3d9_device_SetViewport(), d3d9_device_ShowCursor(), d3d9_device_StretchRect(), d3d9_device_UpdateSurface(), d3d9_device_UpdateTexture(), d3d9_device_ValidateDevice(), d3d9_EnumAdapterModes(), d3d9_EnumAdapterModesEx(), d3d9_GetAdapterDisplayMode(), d3d9_GetAdapterDisplayModeEx(), d3d9_GetAdapterIdentifier(), d3d9_GetAdapterModeCount(), d3d9_GetAdapterModeCountEx(), d3d9_GetAdapterMonitor(), d3d9_GetDeviceCaps(), d3d9_indexbuffer_GetDesc(), d3d9_indexbuffer_GetPriority(), d3d9_indexbuffer_PreLoad(), d3d9_indexbuffer_SetPriority(), d3d9_init(), d3d9_pixelshader_GetFunction(), d3d9_query_GetData(), d3d9_query_GetType(), d3d9_RegisterSoftwareDevice(), d3d9_resource_free_private_data(), d3d9_resource_get_private_data(), d3d9_resource_set_private_data(), d3d9_stateblock_Apply(), d3d9_stateblock_Capture(), d3d9_surface_GetDC(), d3d9_surface_GetDesc(), d3d9_surface_PreLoad(), d3d9_surface_ReleaseDC(), d3d9_surface_UnlockRect(), d3d9_swapchain_GetBackBuffer(), d3d9_swapchain_GetDisplayMode(), d3d9_swapchain_GetDisplayModeEx(), d3d9_swapchain_GetFrontBufferData(), d3d9_swapchain_GetPresentParameters(), d3d9_swapchain_GetRasterStatus(), d3d9_texture_2d_AddDirtyRect(), d3d9_texture_2d_GenerateMipSubLevels(), d3d9_texture_2d_GetLevelCount(), d3d9_texture_2d_GetLevelDesc(), d3d9_texture_2d_GetLOD(), d3d9_texture_2d_GetPriority(), d3d9_texture_2d_GetSurfaceLevel(), d3d9_texture_2d_LockRect(), d3d9_texture_2d_SetLOD(), d3d9_texture_2d_SetPriority(), d3d9_texture_2d_UnlockRect(), d3d9_texture_3d_AddDirtyBox(), d3d9_texture_3d_GetLevelCount(), d3d9_texture_3d_GetLevelDesc(), d3d9_texture_3d_GetLOD(), d3d9_texture_3d_GetPriority(), d3d9_texture_3d_GetVolumeLevel(), d3d9_texture_3d_LockBox(), d3d9_texture_3d_SetLOD(), d3d9_texture_3d_SetPriority(), d3d9_texture_3d_UnlockBox(), d3d9_texture_cube_AddDirtyRect(), d3d9_texture_cube_GenerateMipSubLevels(), d3d9_texture_cube_GetCubeMapSurface(), d3d9_texture_cube_GetLevelCount(), d3d9_texture_cube_GetLevelDesc(), d3d9_texture_cube_GetLOD(), d3d9_texture_cube_GetPriority(), d3d9_texture_cube_LockRect(), d3d9_texture_cube_SetLOD(), d3d9_texture_cube_SetPriority(), d3d9_texture_cube_UnlockRect(), d3d9_texture_decref(), d3d9_texture_incref(), d3d9_texture_init(), d3d9_texture_preload(), d3d9_vertexbuffer_GetDesc(), d3d9_vertexbuffer_GetPriority(), d3d9_vertexbuffer_PreLoad(), d3d9_vertexbuffer_SetPriority(), d3d9_vertexshader_GetFunction(), d3d9_volume_GetDesc(), d3d_blend_state_create(), d3d_buffer_init(), d3d_depthstencil_state_create(), d3d_depthstencil_view_init(), d3d_device1_CreateMatrix(), d3d_device1_DeleteMatrix(), d3d_device1_Execute(), d3d_device1_GetMatrix(), d3d_device1_SetMatrix(), d3d_device2_EnumTextureFormats(), d3d_device2_SetRenderTarget(), d3d_device2_SwapTextureHandles(), d3d_device3_AddViewport(), d3d_device3_Begin(), d3d_device3_DeleteViewport(), d3d_device3_GetCurrentViewport(), d3d_device3_GetLightState(), d3d_device3_GetRenderState(), d3d_device3_GetTransform(), d3d_device3_MultiplyTransform(), d3d_device3_NextViewport(), d3d_device3_SetCurrentViewport(), d3d_device3_SetLightState(), d3d_device3_SetRenderState(), d3d_device3_SetRenderTarget(), d3d_device3_SetTexture(), d3d_device3_SetTransform(), d3d_device3_Vertex(), d3d_device7_ApplyStateBlock(), d3d_device7_BeginScene(), d3d_device7_BeginStateBlock(), d3d_device7_CaptureStateBlock(), d3d_device7_Clear(), d3d_device7_CreateStateBlock(), d3d_device7_DeleteStateBlock(), d3d_device7_DrawIndexedPrimitive(), d3d_device7_DrawIndexedPrimitiveStrided(), d3d_device7_DrawIndexedPrimitiveVB(), d3d_device7_DrawPrimitive(), d3d_device7_DrawPrimitiveStrided(), d3d_device7_DrawPrimitiveVB(), d3d_device7_EndScene(), d3d_device7_EndStateBlock(), d3d_device7_EnumTextureFormats(), d3d_device7_GetClipPlane(), d3d_device7_GetLight(), d3d_device7_GetLightEnable(), d3d_device7_GetMaterial(), d3d_device7_GetRenderState(), d3d_device7_GetRenderTarget(), d3d_device7_GetTexture(), d3d_device7_GetTextureStageState(), d3d_device7_GetTransform(), d3d_device7_GetViewport(), d3d_device7_LightEnable(), d3d_device7_Load(), d3d_device7_MultiplyTransform(), d3d_device7_PreLoad(), d3d_device7_SetClipPlane(), d3d_device7_SetLight(), d3d_device7_SetMaterial(), d3d_device7_SetRenderState(), d3d_device7_SetRenderTarget(), d3d_device7_SetTexture(), d3d_device7_SetTextureStageState(), d3d_device7_SetTransform(), d3d_device7_SetViewport(), d3d_device7_ValidateDevice(), d3d_device_inner_Release(), d3d_geometry_shader_init(), d3d_get_private_data(), d3d_input_layout_init(), d3d_light_GetLight(), d3d_light_SetLight(), d3d_material3_GetHandle(), d3d_material3_GetMaterial(), d3d_material3_Release(), d3d_material3_SetMaterial(), d3d_pixel_shader_init(), d3d_query_init(), d3d_rasterizer_state_create(), d3d_rendertarget_view_init(), d3d_sampler_state_create(), d3d_set_private_data(), d3d_set_private_data_interface(), d3d_shader_resource_view_init(), d3d_texture1d_create(), d3d_texture2_GetHandle(), d3d_texture2_Load(), d3d_texture2d_create(), d3d_texture3d_init(), d3d_vertex_buffer7_GetVertexBufferDesc(), d3d_vertex_buffer7_Lock(), d3d_vertex_buffer7_Optimize(), d3d_vertex_buffer7_ProcessVertices(), d3d_vertex_buffer7_Release(), d3d_vertex_buffer_create(), d3d_vertex_shader_init(), d3d_video_decoder_output_view_init(), d3d_viewport_AddLight(), d3d_viewport_Clear(), d3d_viewport_Clear2(), d3d_viewport_DeleteLight(), d3d_viewport_GetBackground(), d3d_viewport_GetViewport(), d3d_viewport_GetViewport2(), d3d_viewport_NextLight(), d3d_viewport_SetBackground(), d3d_viewport_SetViewport(), d3d_viewport_SetViewport2(), d3d_viewport_TransformVertices(), ddraw1_CreateSurface(), ddraw2_CreateSurface(), ddraw4_CreateSurface(), ddraw7_CreatePalette(), ddraw7_CreateSurface(), ddraw7_EnumDisplayModes(), ddraw7_EnumSurfaces(), ddraw7_FlipToGDISurface(), ddraw7_GetAvailableVidMem(), ddraw7_GetCaps(), ddraw7_GetDeviceIdentifier(), ddraw7_GetDisplayMode(), ddraw7_GetGDISurface(), ddraw7_GetMonitorFrequency(), ddraw7_GetScanLine(), ddraw7_GetSurfaceFromDC(), ddraw7_GetVerticalBlankStatus(), ddraw7_RestoreDisplayMode(), ddraw7_SetDisplayMode(), ddraw_clipper_GetClipList(), ddraw_clipper_GetHWnd(), ddraw_clipper_Initialize(), ddraw_clipper_SetClipList(), ddraw_clipper_SetHWnd(), ddraw_destroy(), ddraw_enumerate_secondary_devices(), ddraw_gamma_control_GetGammaRamp(), ddraw_gamma_control_SetGammaRamp(), ddraw_get_d3dcaps(), ddraw_palette_GetCaps(), ddraw_palette_GetEntries(), ddraw_palette_Release(), ddraw_palette_SetEntries(), ddraw_set_cooperative_level(), ddraw_surface1_Blt(), ddraw_surface1_Flip(), ddraw_surface1_Unlock(), ddraw_surface3_GetSurfaceDesc(), ddraw_surface7_BltFast(), ddraw_surface7_EnumAttachedSurfaces(), ddraw_surface7_FreePrivateData(), ddraw_surface7_GetAttachedSurface(), ddraw_surface7_GetClipper(), ddraw_surface7_GetColorKey(), ddraw_surface7_GetDC(), ddraw_surface7_GetLOD(), ddraw_surface7_GetOverlayPosition(), ddraw_surface7_GetPalette(), ddraw_surface7_GetPixelFormat(), ddraw_surface7_GetPriority(), ddraw_surface7_GetPrivateData(), ddraw_surface7_GetSurfaceDesc(), ddraw_surface7_QueryInterface(), ddraw_surface7_ReleaseDC(), ddraw_surface7_SetClipper(), ddraw_surface7_SetLOD(), ddraw_surface7_SetOverlayPosition(), ddraw_surface7_SetPriority(), ddraw_surface7_SetPrivateData(), ddraw_surface7_SetSurfaceDesc(), ddraw_surface7_UpdateOverlay(), ddraw_surface7_UpdateOverlayZOrder(), ddraw_surface_add_iface(), ddraw_surface_attach_surface(), ddraw_surface_delete_attached_surface(), ddraw_surface_release_iface(), ddraw_surface_set_color_key(), ddraw_surface_set_palette(), device_init(), DirectDrawCreate(), DirectDrawCreateClipper(), DirectDrawCreateEx(), dxgi_adapter_CheckInterfaceSupport(), dxgi_device_CreateSurface(), dxgi_device_GetMaximumFrameLatency(), dxgi_device_init(), dxgi_device_Release(), dxgi_device_SetMaximumFrameLatency(), dxgi_factory_EnumAdapters1(), dxgi_factory_get_device_window(), dxgi_factory_init(), dxgi_get_private_data(), dxgi_output_find_closest_matching_mode(), dxgi_output_get_display_mode_list(), dxgi_output_GetDesc(), dxgi_output_GetDesc1(), dxgi_output_ReleaseOwnership(), dxgi_output_SetGammaControl(), dxgi_output_TakeOwnership(), dxgi_set_private_data(), dxgi_set_private_data_interface(), dxgi_surface_GetDC(), dxgi_surface_GetDesc(), dxgi_surface_ReleaseDC(), DXGID3D10RegisterLayers(), get_layer(), GetSurfaceFromDC(), indexbuffer_init(), notification_thread_func(), pixelshader_init(), prepare_clip_space_planes(), query_init(), register_d3d10core_layers(), stateblock_init(), surface_lock(), vertexbuffer_init(), vertexdeclaration_init(), vertexshader_init(), wined3d_adapter_get_identifier(), wined3d_adapter_register_budget_change_notification(), wined3d_adapter_unregister_budget_change_notification(), wined3d_atomic_decrement_mutex_lock(), wined3d_blend_state_decref(), wined3d_buffer_decref(), wined3d_command_list_decref(), wined3d_cs_emit_present(), wined3d_decref(), wined3d_depth_stencil_state_decref(), wined3d_device_context_unlock(), wined3d_device_decref(), wined3d_palette_decref(), wined3d_query_decref(), wined3d_rasterizer_state_decref(), wined3d_rendertarget_view_decref(), wined3d_sampler_decref(), wined3d_shader_decref(), wined3d_shader_resource_view_destroy(), wined3d_stateblock_decref(), wined3d_swapchain_create(), wined3d_swapchain_decref(), wined3d_swapchain_init(), wined3d_swapchain_present(), wined3d_swapchain_state_resize_target(), wined3d_texture_decref(), wined3d_unordered_access_view_decref(), and wined3d_vertex_declaration_decref().

◆ wined3d_register_window()

BOOL CDECL wined3d_register_window ( struct wined3d *  wined3d,
HWND  window,
struct wined3d_device *  device,
unsigned int  flags 
)

Definition at line 715 of file wined3d_main.c.

717{
718 struct wined3d_wndproc *entry;
719
720 TRACE("wined3d %p, window %p, device %p, flags %#x.\n", wined3d, window, device, flags);
721
723
725 {
726 if (!wined3d)
727 WARN("Window %p is already registered with wined3d.\n", window);
728 entry->flags = flags;
730 return TRUE;
731 }
732
733 if (!wined3d_array_reserve((void **)&wndproc_table.entries, &wndproc_table.size,
734 wndproc_table.count + 1, sizeof(*entry)))
735 {
737 ERR("Failed to grow table.\n");
738 return FALSE;
739 }
740
741 entry = &wndproc_table.entries[wndproc_table.count++];
742 entry->window = window;
743 entry->unicode = IsWindowUnicode(window);
744 if (!wined3d)
745 {
746 /* Set a window proc that matches the window. Some applications (e.g.
747 * NoX) replace the window proc after we've set ours, and expect to be
748 * able to call the previous one (ours) directly, without using
749 * CallWindowProc(). */
750 if (entry->unicode)
752 else
754 }
755 else
756 {
757 entry->proc = NULL;
758 }
759 entry->device = device;
760 entry->wined3d = wined3d;
761 entry->flags = flags;
762
764
765 return TRUE;
766}
BOOL wined3d_array_reserve(void **elements, SIZE_T *capacity, SIZE_T count, SIZE_T size)
Definition: utils.c:6740
BOOL WINAPI IsWindowUnicode(_In_ HWND)
LRESULT(CALLBACK * WNDPROC)(HWND, UINT, WPARAM, LPARAM)
Definition: winuser.h:3014
Definition: devices.h:37
struct wined3d * wined3d
Definition: wined3d_main.c:41
struct wined3d_device * device
Definition: wined3d_main.c:46

Referenced by dxgi_factory_MakeWindowAssociation(), and wined3d_device_acquire_focus_window().

◆ wined3d_swapchain_state_cleanup()

void wined3d_swapchain_state_cleanup ( struct wined3d_swapchain_state *  state)

Definition at line 942 of file wined3d_main.c.

943{
945}
static void wined3d_swapchain_state_unregister(struct wined3d_swapchain_state *state)
Definition: wined3d_main.c:909

Referenced by wined3d_swapchain_cleanup(), wined3d_swapchain_init(), and wined3d_swapchain_state_destroy().

◆ wined3d_swapchain_state_register()

void wined3d_swapchain_state_register ( struct wined3d_swapchain_state *  state)

Definition at line 868 of file wined3d_main.c.

869{
872
874
875 if (!wined3d_array_reserve((void **)&swapchain_state_table.states, &swapchain_state_table.states_size,
876 swapchain_state_table.state_count + 1, sizeof(*state_entry)))
877 {
879 return;
880 }
881
884 state_entry->thread_id = GetWindowThreadProcessId(state->device_window, NULL);
885
886 if ((hook = wined3d_find_hook(state_entry->thread_id)))
887 {
888 ++hook->count;
890 return;
891 }
892
893 if (!wined3d_array_reserve((void **)&swapchain_state_table.hooks, &swapchain_state_table.hooks_size,
894 swapchain_state_table.hook_count + 1, sizeof(*hook)))
895 {
896 --swapchain_state_table.state_count;
898 return;
899 }
900
901 hook = &swapchain_state_table.hooks[swapchain_state_table.hook_count++];
902 hook->thread_id = state_entry->thread_id;
904 hook->count = 1;
905
907}
@ hook
Definition: SystemMenu.c:35
#define state_entry(pos)
Definition: pnfs_layout.c:39
HHOOK WINAPI SetWindowsHookExW(_In_ int, _In_ HOOKPROC, _In_opt_ HINSTANCE, _In_ DWORD)
#define WH_GETMESSAGE
Definition: winuser.h:33
Definition: performance.c:575
IDirectMusicSegmentState * state
Definition: performance.c:577
DWORD WINAPI GetWindowThreadProcessId(HWND hWnd, PDWORD lpdwProcessId)
static LRESULT CALLBACK wined3d_hook_proc(int code, WPARAM wparam, LPARAM lparam)
Definition: wined3d_main.c:667
static struct wined3d_window_hook * wined3d_find_hook(DWORD thread_id)
Definition: wined3d_main.c:855

Referenced by wined3d_swapchain_state_init().

◆ wined3d_swapchain_state_unregister()

static void wined3d_swapchain_state_unregister ( struct wined3d_swapchain_state *  state)
static

Definition at line 909 of file wined3d_main.c.

910{
911 struct wined3d_registered_swapchain_state *state_entry, *last_state_entry;
912 struct wined3d_window_hook *hook, *last_hook;
913 unsigned int i;
914
916
917 for (i = 0; i < swapchain_state_table.state_count; ++i)
918 {
920
921 if (state_entry->state != state)
922 continue;
923
924 if ((hook = wined3d_find_hook(state_entry->thread_id)) && !--hook->count)
925 {
927 last_hook = &swapchain_state_table.hooks[--swapchain_state_table.hook_count];
928 if (hook != last_hook)
929 *hook = *last_hook;
930 }
931
932 last_state_entry = &swapchain_state_table.states[--swapchain_state_table.state_count];
933 if (state_entry != last_state_entry)
934 *state_entry = *last_state_entry;
935
936 break;
937 }
938
940}

Referenced by wined3d_swapchain_state_cleanup().

◆ wined3d_unregister_window()

void wined3d_unregister_window ( HWND  window)

Definition at line 790 of file wined3d_main.c.

791{
792 struct wined3d_wndproc *entry, *last;
793
795
797 {
799 ERR("Window %p is not registered with wined3d.\n", window);
800 return;
801 }
802
803 if (entry->proc && !restore_wndproc(entry))
804 {
805 entry->device = NULL;
806 WARN("Not unregistering window %p, current window proc doesn't match wined3d window proc.\n", window);
808 return;
809 }
810
811 last = &wndproc_table.entries[--wndproc_table.count];
812 if (entry != last) *entry = *last;
813
815}
static const LARGE_INTEGER *static const HANDLE const LARGE_INTEGER *static PSLIST_ENTRY PSLIST_ENTRY last
Definition: sync.c:64
static BOOL restore_wndproc(struct wined3d_wndproc *entry)
Definition: wined3d_main.c:768

Referenced by device_process_message(), and wined3d_device_release_focus_window().

◆ wined3d_unregister_windows()

void CDECL wined3d_unregister_windows ( struct wined3d *  wined3d)

Definition at line 817 of file wined3d_main.c.

818{
819 struct wined3d_wndproc *entry, *last;
820 unsigned int i = 0;
821
822 TRACE("wined3d %p.\n", wined3d);
823
825
826 while (i < wndproc_table.count)
827 {
828 entry = &wndproc_table.entries[i];
829
830 if (entry->wined3d != wined3d)
831 {
832 ++i;
833 continue;
834 }
835
836 if (entry->proc && !restore_wndproc(entry))
837 {
838 entry->device = NULL;
839 WARN("Not unregistering window %p, current window proc doesn't match wined3d window proc.\n",
840 entry->window);
841 ++i;
842 continue;
843 }
844
845 last = &wndproc_table.entries[--wndproc_table.count];
846 if (entry != last)
847 *entry = *last;
848 else
849 ++i;
850 }
851
853}

Referenced by dxgi_factory_MakeWindowAssociation().

◆ wined3d_wndproc()

static LRESULT CALLBACK wined3d_wndproc ( HWND  window,
UINT  message,
WPARAM  wparam,
LPARAM  lparam 
)
static

Definition at line 626 of file wined3d_main.c.

627{
628 struct wined3d_wndproc *entry;
629 struct wined3d_device *device;
630 BOOL unicode, filter;
632
634
636 {
638 ERR("Window %p is not registered with wined3d.\n", window);
640 }
641
642 device = entry->device;
643 unicode = entry->unicode;
644 filter = entry->filter;
645 proc = entry->proc;
647
648 if (device)
649 {
650 if (filter && message != WM_DISPLAYCHANGE)
651 {
652 TRACE("Filtering message: window %p, message %#x, wparam %#Ix, lparam %#Ix.\n",
654
655 if (unicode)
658 }
659
661 }
662 if (unicode)
665}
LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL unicode, UINT message, WPARAM wparam, LPARAM lparam, WNDPROC proc)
Definition: device.c:5588
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
LRESULT WINAPI CallWindowProcW(_In_ WNDPROC, _In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
LRESULT WINAPI CallWindowProcA(_In_ WNDPROC, _In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
Definition: filter.c:165
Definition: tftpd.h:60

◆ wined3d_wndproc_mutex_lock()

◆ wined3d_wndproc_mutex_unlock()

Variable Documentation

◆ swapchain_state_table

◆ wined3d_command_cs

CRITICAL_SECTION wined3d_command_cs = {&wined3d_command_cs_debug, -1, 0, 0, 0, 0}

◆ wined3d_command_cs_debug

CRITICAL_SECTION_DEBUG wined3d_command_cs_debug
static
Initial value:
=
{
0, 0, {(DWORD_PTR)(__FILE__ ": wined3d_command_cs")}
}
#define DWORD_PTR
Definition: treelist.c:76
static CRITICAL_SECTION_DEBUG wined3d_command_cs_debug
Definition: wined3d_main.c:105

Definition at line 105 of file wined3d_main.c.

◆ wined3d_cs

static CRITICAL_SECTION wined3d_cs = {&wined3d_cs_debug, -1, 0, 0, 0, 0}
static

Definition at line 84 of file wined3d_main.c.

◆ wined3d_cs_debug

CRITICAL_SECTION_DEBUG wined3d_cs_debug
static
Initial value:
=
{
0, 0, &wined3d_cs,
0, 0, {(DWORD_PTR)(__FILE__ ": wined3d_cs")}
}
static CRITICAL_SECTION_DEBUG wined3d_cs_debug
Definition: wined3d_main.c:85
static CRITICAL_SECTION wined3d_cs
Definition: wined3d_main.c:84

Definition at line 85 of file wined3d_main.c.

◆ wined3d_settings

Initial value:
=
{
.cs_multithreaded = WINED3D_CSMT_ENABLE,
.max_gl_version = MAKEDWORD_VERSION(4, 4),
.pci_vendor_id = PCI_VENDOR_NONE,
.pci_device_id = PCI_DEVICE_NONE,
.multisample_textures = TRUE,
.sample_count = ~0u,
.max_sm_vs = UINT_MAX,
.max_sm_ps = UINT_MAX,
.max_sm_ds = UINT_MAX,
.max_sm_hs = UINT_MAX,
.max_sm_gs = UINT_MAX,
.max_sm_cs = UINT_MAX,
.renderer = WINED3D_RENDERER_AUTO,
.shader_backend = WINED3D_SHADER_BACKEND_AUTO,
}
#define UINT_MAX
Definition: limits.h:27
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
Definition: glfuncs.h:240
#define PCI_VENDOR_NONE
#define MAKEDWORD_VERSION(maj, min)
#define PCI_DEVICE_NONE
#define WINED3D_CSMT_ENABLE
@ WINED3D_SHADER_BACKEND_AUTO

Definition at line 116 of file wined3d_main.c.

◆ wined3d_wndproc_cs

static CRITICAL_SECTION wined3d_wndproc_cs = {&wined3d_wndproc_cs_debug, -1, 0, 0, 0, 0}
static

◆ wined3d_wndproc_cs_debug

CRITICAL_SECTION_DEBUG wined3d_wndproc_cs_debug
static
Initial value:
=
{
0, 0, {(DWORD_PTR)(__FILE__ ": wined3d_wndproc_cs")}
}
static CRITICAL_SECTION_DEBUG wined3d_wndproc_cs_debug
Definition: wined3d_main.c:95

Definition at line 95 of file wined3d_main.c.

◆ wndproc_table