30#include "wine/winternl.h"
36#define DEFAULT_REFRESH_RATE 0
94static const GUID IID_D3DDEVICE_D3DUID = { 0xaeb2cdd4, 0x6e41, 0x43ea, { 0x94,0x1c,0x83,0x61,0xcc,0x76,0x07,0x81 } };
309 TRACE(
"Destroying caps GL context.\n");
314 if (
ctx->test_program_id ||
ctx->test_vbo)
321 ERR(
"Failed to disable caps GL context.\n");
326 ERR(
"wglDeleteContext(%p) failed, last error %#x.\n",
ctx->gl_ctx,
err);
333 ERR(
"Failed to restore previous GL context.\n");
341 if (!(gl_info->p_wglCreateContextAttribsARB = (
void *)
wglGetProcAddress(
"wglCreateContextAttribsARB")))
346 gl_info->p_wglCreateContextAttribsARB =
NULL;
352 ERR(
"Failed to make new context current, last error %#x.\n",
GetLastError());
354 ERR(
"Failed to delete new context, last error %#x.\n",
GetLastError());
355 gl_info->p_wglCreateContextAttribsARB =
NULL;
360 ERR(
"Failed to delete old context, last error %#x.\n",
GetLastError());
361 caps_gl_ctx->
gl_ctx = new_ctx;
371 TRACE(
"getting context...\n");
381 ERR(
"Failed to create a window.\n");
388 ERR(
"Failed to get a DC.\n");
404 ERR(
"Failed to find a suitable pixel format.\n");
413 WARN(
"Failed to create default context for capabilities initialization.\n");
420 ERR(
"Failed to make caps GL context current.\n");
435 ERR(
"Failed to restore previous GL context.\n");
443 adapter->vram_bytes_used += amount;
444 TRACE(
"Adjusted used adapter memory by 0x%s to 0x%s.\n",
447 return adapter->vram_bytes_used;
460 TRACE(
"%p increasing refcount to %u.\n",
wined3d, refcount);
469 TRACE(
"%p decreasing refcount to %u.\n",
wined3d, refcount);
490 static const char testcode[] =
492 "PARAM C[66] = { program.env[0..65] };\n"
494 "PARAM zero = {0.0, 0.0, 0.0, 0.0};\n"
495 "ARL A0.x, zero.x;\n"
496 "MOV result.position, C[A0.x + 65];\n"
499 while (gl_info->
gl_ops.gl.p_glGetError());
502 ERR(
"Failed to create an ARB offset limit test program\n");
506 strlen(testcode), testcode));
507 if (gl_info->
gl_ops.gl.p_glGetError())
509 TRACE(
"OpenGL implementation does not allow indirect addressing offsets > 63\n");
512 }
else TRACE(
"OpenGL implementation allows offsets > 63\n");
583 static const unsigned int pattern[] =
585 0x00000000, 0x000000ff, 0x0000ff00, 0x40ff0000,
586 0x80ffffff, 0x40ffff00, 0x00ff00ff, 0x0000ffff,
587 0x00ffff00, 0x00ff00ff, 0x0000ffff, 0x000000ff,
588 0x80ff00ff, 0x0000ffff, 0x00ff00ff, 0x40ff00ff
595 while (gl_info->
gl_ops.gl.p_glGetError());
613 gl_info->
gl_ops.gl.p_glFinish();
625 WARN_(d3d_perf)(
"PBO test failed, read back data doesn't match original.\n"
626 "Disabling PBOs. This may result in slower performance.\n");
631 TRACE(
"PBO test successful.\n");
663 return gl_info->
limits.glsl_varyings > 44;
684 while (gl_info->
gl_ops.gl.p_glGetError());
690 TRACE(
"GL Implementation accepts 4 component specular color pointers\n");
695 TRACE(
"GL implementation does not accept 4 component specular colors, error %s\n",
709 static const char testcode[] =
711 "OPTION NV_vertex_program2;\n"
712 "MOV result.clip[0], 0.0;\n"
713 "MOV result.position, 0.0;\n"
718 while (gl_info->
gl_ops.gl.p_glGetError());
723 ERR(
"Failed to create the NVvp clip test program\n");
728 strlen(testcode), testcode));
732 WARN(
"GL_NV_vertex_program2_option result.clip[] test failed\n");
735 while (gl_info->
gl_ops.gl.p_glGetError());
737 else TRACE(
"GL_NV_vertex_program2_option result.clip[] test passed\n");
741 checkGLcall(
"GL_NV_vertex_program2_option result.clip[] test cleanup");
751 char data[4 * 4 * 4];
759 gl_info->
gl_ops.gl.p_glGenTextures(1, &tex);
766 gl_info->
fbo_ops.glGenFramebuffers(1, &fbo);
779 gl_info->
gl_ops.gl.p_glClearColor(0.996f, 0.729f, 0.745f, 0.792f);
791 gl_info->
fbo_ops.glDeleteFramebuffers(1, &fbo);
792 gl_info->
gl_ops.gl.p_glDeleteTextures(1, &tex);
808 gl_info->
gl_ops.gl.p_glGenTextures(1, &tex);
819 gl_info->
gl_ops.gl.p_glDeleteTextures(1, &tex);
848 float color[4] = {0.0f, 1.0f, 0.0f, 0.0f};
851 static const char program_code[] =
853 "OPTION ARB_fog_linear;\n"
854 "MOV result.color, {1.0, 0.0, 0.0, 0.0};\n"
862 gl_info->
gl_ops.gl.p_glGenTextures(1, &tex);
869 gl_info->
fbo_ops.glGenFramebuffers(1, &fbo);
878 gl_info->
gl_ops.gl.p_glClearColor(0.0f, 0.0f, 1.0f, 0.0f);
881 gl_info->
gl_ops.gl.p_glViewport(0, 0, 4, 1);
895 strlen(program_code), program_code));
902 const char *error_str;
904 FIXME(
"Fog test program error at position %d: %s\n\n", err_pos,
debugstr_a(error_str));
908 gl_info->
gl_ops.gl.p_glVertex3f(-1.0f, -1.0f, 0.0f);
909 gl_info->
gl_ops.gl.p_glVertex3f( 1.0f, -1.0f, 1.0f);
910 gl_info->
gl_ops.gl.p_glVertex3f(-1.0f, 1.0f, 0.0f);
911 gl_info->
gl_ops.gl.p_glVertex3f( 1.0f, 1.0f, 1.0f);
912 gl_info->
gl_ops.gl.p_glEnd();
917 data[0] &= 0x00ffffff;
918 data[1] &= 0x00ffffff;
919 data[2] &= 0x00ffffff;
920 data[3] &= 0x00ffffff;
925 gl_info->
fbo_ops.glDeleteFramebuffers(1, &fbo);
926 gl_info->
gl_ops.gl.p_glDeleteTextures(1, &tex);
934 return data[0] != 0x00ff0000 ||
data[3] != 0x0000ff00;
953 TRACE(
"Reserving 12 GLSL constants for compiler private use.\n");
972 TRACE(
"GL_ARB_texture_non_power_of_two advertised on R500 or earlier card, removing.\n");
994 TRACE(
"GL_ARB_texture_non_power_of_two advertised through OpenGL 2.0 on NV FX card, removing.\n");
1014 TRACE(
"Enabling vertex texture coord fixes in vertex shaders.\n");
1067 TRACE(
"Reserving 1 ARB constant for compiler private use.\n");
1080 TRACE(
"Disabling ARB_clip_control.\n");
1099 "AMD normalized texrect quirk"
1104 "Apple GLSL uniform override"
1109 "Geforce 5 NP2 disable"
1114 "Init texcoord .w for Apple Intel GPU driver"
1119 "Init texcoord .w for Apple ATI >= r600 GPU driver"
1124 "Reserved varying for gl_ClipPos"
1139 "Allow specular alpha quirk"
1144 "Apple NV_vertex_program clip bug quirk"
1149 "FBO rebind for attachment updates"
1154 "True RGBA16 is not available"
1159 "Not printing GLSL infolog"
1164 "Texture filtering, blending and VTF support is limited"
1169 "r200 vertex shader constants"
1174 "ARBfp fogstart == fogend workaround"
1179 "Nvidia viewport subpixel bits bug"
1544 TRACE(
"Found driver \"%s\", version %u, subversion %u, build %u.\n",
1571 static unsigned int once;
1583 TRACE(
"Card reports vendor PCI ID 0x%04x, device PCI ID 0x%04x, 0x%s bytes of video memory.\n",
1591 *vram_bytes = (
UINT64)vram_kb * 1024;
1592 TRACE(
"Got 0x%s as video memory from NVX_GPU_MEMORY_INFO extension.\n",
1599 TRACE(
"Overriding vendor PCI ID with 0x%04x.\n",
vendor);
1605 TRACE(
"Overriding device PCI ID with 0x%04x.\n",
device);
1611 TRACE(
"Overriding amount of video memory with 0x%s bytes.\n",
1618 ERR_(winediag)(
"Invalid GPU override %04x:%04x specified, ignoring.\n",
vendor,
device);
1627 WORD driver_os_version;
1632 memset(&os_version, 0,
sizeof(os_version));
1636 ERR(
"Failed to get OS version, reporting 2000/XP.\n");
1637 driver_os_version = 6;
1649 driver_os_version = 4;
1654 driver_os_version = 6;
1661 driver_os_version = 7;
1666 driver_os_version = 8;
1673 FIXME(
"Unhandled OS version %u.%u, reporting Win 8.\n",
1676 driver_os_version = 9;
1682 driver_os_version = 10;
1687 FIXME(
"Unhandled OS version %u.%u, reporting 2000/XP.\n",
1689 driver_os_version = 6;
1707 if (driver_model < DRIVER_MODEL_NT6X && driver_info->vram_bytes >
LONG_MAX)
1709 TRACE(
"Limiting amount of video memory to %#lx bytes for OS version older than Vista.\n",
LONG_MAX);
1736 ERR(
"No driver version info found for device %04x:%04x, driver model %#x.\n",
1738 driver_info->
name =
"Display";
1743 TRACE(
"Reporting (fake) driver version 0x%08x-0x%08x.\n",
1767 const char *
ptr = gl_version;
1772 ERR(
"Invalid OpenGL major version %d.\n",
major);
1776 ERR(
"Invalid OpenGL version string %s.\n",
debugstr_a(gl_version));
1786 const char *gl_vendor_string,
const char *gl_renderer,
const char *gl_version)
1802 if (
strstr(gl_vendor_string,
"NVIDIA"))
1805 if (
strstr(gl_vendor_string,
"ATI"))
1808 if (
strstr(gl_vendor_string,
"Mesa")
1809 ||
strstr(gl_vendor_string,
"Brian Paul")
1810 ||
strstr(gl_vendor_string,
"X.Org")
1811 ||
strstr(gl_vendor_string,
"Advanced Micro Devices, Inc.")
1812 ||
strstr(gl_vendor_string,
"DRI R300 Project")
1813 ||
strstr(gl_vendor_string,
"Tungsten Graphics, Inc")
1814 ||
strstr(gl_vendor_string,
"VMware, Inc.")
1815 ||
strstr(gl_vendor_string,
"Intel")
1816 ||
strstr(gl_renderer,
"Mesa")
1817 ||
strstr(gl_renderer,
"Gallium")
1818 ||
strstr(gl_renderer,
"Intel")
1819 ||
strstr(gl_version,
"Mesa"))
1822 FIXME(
"Received unrecognized GL_VENDOR %s. Returning GL_VENDOR_UNKNOWN.\n",
1830 if (
strstr(gl_vendor_string,
"NVIDIA")
1831 ||
strstr(gl_vendor_string,
"Nouveau")
1832 ||
strstr(gl_vendor_string,
"nouveau"))
1835 if (
strstr(gl_vendor_string,
"ATI")
1836 ||
strstr(gl_vendor_string,
"Advanced Micro Devices, Inc.")
1837 ||
strstr(gl_vendor_string,
"X.Org R300 Project")
1838 ||
strstr(gl_renderer,
"AMD")
1839 ||
strstr(gl_renderer,
"FirePro")
1840 ||
strstr(gl_renderer,
"Radeon")
1841 ||
strstr(gl_renderer,
"R100")
1842 ||
strstr(gl_renderer,
"R200")
1843 ||
strstr(gl_renderer,
"R300")
1844 ||
strstr(gl_renderer,
"R600")
1845 ||
strstr(gl_renderer,
"R700"))
1848 if (
strstr(gl_vendor_string,
"Intel(R)")
1850 ||
strstr(gl_renderer,
"Intel")
1851 ||
strstr(gl_renderer,
"i915")
1852 ||
strstr(gl_vendor_string,
"Intel Inc."))
1855 if (
strstr(gl_renderer,
"SVGA3D"))
1858 if (
strstr(gl_vendor_string,
"Mesa")
1859 ||
strstr(gl_vendor_string,
"Brian Paul")
1860 ||
strstr(gl_vendor_string,
"Tungsten Graphics, Inc")
1861 ||
strstr(gl_vendor_string,
"VMware, Inc."))
1864 FIXME(
"Received unrecognized GL_VENDOR %s. Returning HW_VENDOR_NVIDIA.\n",
debugstr_a(gl_vendor_string));
2476 if (
table[
i].gl_vendor != gl_vendor)
2481 for (
j = 0;
j <
table[
i].cards_size; ++
j)
2488 FIXME(
"Couldn't find a suitable card selector for GL vendor %04x (using GL_RENDERER %s)\n",
2587 TRACE(
"Unrecognized renderer %s, falling back to default.\n",
debugstr_a(gl_renderer));
2591 FIXME(
"No card selector available for card vendor %04x (using GL_RENDERER %s).\n",
2650 while (!
isspace(*extensions) && *extensions)
2659 for (
i = 0;
i < entry_count; ++
i)
2664 TRACE(
" FOUND: %s support.\n",
map[
i].extension_string);
2675 const char *gl_extension_name;
2677 GLint extensions_count;
2680 for (
i = 0;
i < extensions_count; ++
i)
2684 for (
j = 0;
j < map_entries_count; ++
j)
2686 if (!
strcmp(gl_extension_name,
map[
j].extension_string))
2688 TRACE(
"FOUND: %s support.\n",
map[
j].extension_string);
2698#define USE_GL_FUNC(pfn) gl_info->gl_ops.ext.p_##pfn = (void *)wglGetProcAddress(#pfn);
2713 USE_GL_FUNC(glDrawElementsInstancedBaseVertexBaseInstance)
2776 USE_GL_FUNC(glGetFramebufferAttachmentParameteriv)
3090 USE_GL_FUNC(glGetFramebufferAttachmentParameterivEXT)
3350#ifndef USE_WIN32_OPENGL
3356#define MAP_GL_FUNCTION(core_func, ext_func) \
3359 if (!gl_info->gl_ops.ext.p_##core_func) \
3360 gl_info->gl_ops.ext.p_##core_func = gl_info->gl_ops.ext.p_##ext_func; \
3362#define MAP_GL_FUNCTION_CAST(core_func, ext_func) \
3365 if (!gl_info->gl_ops.ext.p_##core_func) \
3366 gl_info->gl_ops.ext.p_##core_func = (void *)gl_info->gl_ops.ext.p_##ext_func; \
3398 MAP_GL_FUNCTION(glDisableVertexAttribArray, glDisableVertexAttribArrayARB);
3403 MAP_GL_FUNCTION(glEnableVertexAttribArray, glEnableVertexAttribArrayARB);
3472#undef MAP_GL_FUNCTION
3473#undef MAP_GL_FUNCTION_CAST
3478 unsigned int i, sampler_count;
3482 gl_info->
limits.blends = 1;
3483 gl_info->
limits.buffers = 1;
3484 gl_info->
limits.textures = 0;
3485 gl_info->
limits.texture_coords = 0;
3488 gl_info->
limits.uniform_blocks[
i] = 0;
3489 gl_info->
limits.samplers[
i] = 0;
3493 gl_info->
limits.graphics_samplers = gl_info->
limits.combined_samplers;
3494 gl_info->
limits.vertex_attribs = 16;
3495 gl_info->
limits.texture_buffer_offset_alignment = 1;
3496 gl_info->
limits.glsl_vs_float_constants = 0;
3497 gl_info->
limits.glsl_ps_float_constants = 0;
3498 gl_info->
limits.arb_vs_float_constants = 0;
3499 gl_info->
limits.arb_vs_native_constants = 0;
3500 gl_info->
limits.arb_vs_instructions = 0;
3501 gl_info->
limits.arb_vs_temps = 0;
3502 gl_info->
limits.arb_ps_float_constants = 0;
3503 gl_info->
limits.arb_ps_local_constants = 0;
3504 gl_info->
limits.arb_ps_instructions = 0;
3505 gl_info->
limits.arb_ps_temps = 0;
3509 TRACE(
"Clip plane support - max planes %d.\n", gl_max);
3514 gl_info->
limits.lights = gl_max;
3515 TRACE(
"Light support - max lights %d.\n", gl_max);
3519 gl_info->
limits.texture_size = gl_max;
3520 TRACE(
"Maximum texture size support - max texture size %d.\n", gl_max);
3524 gl_info->
limits.pointsize_min = gl_floatv[0];
3525 gl_info->
limits.pointsize_max = gl_floatv[1];
3526 TRACE(
"Maximum point size support - max point size %f.\n", gl_floatv[1]);
3531 TRACE(
"Minimum buffer map alignment: %d.\n", gl_max);
3535 WARN_(d3d_perf)(
"Driver doesn't guarantee a minimum buffer map alignment.\n");
3540 gl_info->
limits.general_combiners = gl_max;
3541 TRACE(
"Max general combiners: %d.\n", gl_max);
3547 TRACE(
"Max draw buffers: %u.\n", gl_max);
3552 gl_info->
limits.dual_buffers = gl_max;
3553 TRACE(
"Max dual source draw buffers: %u.\n", gl_max);
3561 TRACE(
"Max textures: %d.\n", gl_info->
limits.textures);
3570 gl_info->
limits.texture_coords = gl_info->
limits.textures;
3572 TRACE(
"Max texture coords: %d.\n", gl_info->
limits.texture_coords);
3588 unsigned int vertex_sampler_count;
3593 gl_info->
limits.combined_samplers = gl_max;
3595 gl_info->
limits.vertex_attribs = gl_max;
3611 if (vertex_sampler_count && gl_info->
limits.combined_samplers < 12
3614 FIXME(
"OpenGL implementation supports %u vertex samplers and %u total samplers.\n",
3615 vertex_sampler_count, gl_info->
limits.combined_samplers);
3616 FIXME(
"Expected vertex samplers + MAX_TEXTURES(=8) > combined_samplers.\n");
3620 vertex_sampler_count = 0;
3629 TRACE(
"Max combined samplers: %u.\n", gl_info->
limits.combined_samplers);
3630 TRACE(
"Max vertex attributes: %u.\n", gl_info->
limits.vertex_attribs);
3634 gl_info->
limits.textures = 1;
3635 gl_info->
limits.texture_coords = 1;
3641 gl_info->
limits.blends = gl_max;
3642 TRACE(
"Max blends: %u.\n", gl_info->
limits.blends);
3647 gl_info->
limits.texture3d_size = gl_max;
3648 TRACE(
"Max texture3D size: %d.\n", gl_info->
limits.texture3d_size);
3653 gl_info->
limits.anisotropy = gl_max;
3654 TRACE(
"Max anisotropy: %d.\n", gl_info->
limits.anisotropy);
3659 gl_info->
limits.arb_ps_float_constants = gl_max;
3660 TRACE(
"Max ARB_FRAGMENT_PROGRAM float constants: %d.\n", gl_info->
limits.arb_ps_float_constants);
3662 gl_info->
limits.arb_ps_native_constants = gl_max;
3663 TRACE(
"Max ARB_FRAGMENT_PROGRAM native float constants: %d.\n",
3664 gl_info->
limits.arb_ps_native_constants);
3666 gl_info->
limits.arb_ps_temps = gl_max;
3667 TRACE(
"Max ARB_FRAGMENT_PROGRAM native temporaries: %d.\n", gl_info->
limits.arb_ps_temps);
3669 gl_info->
limits.arb_ps_instructions = gl_max;
3670 TRACE(
"Max ARB_FRAGMENT_PROGRAM native instructions: %d.\n", gl_info->
limits.arb_ps_instructions);
3672 gl_info->
limits.arb_ps_local_constants = gl_max;
3673 TRACE(
"Max ARB_FRAGMENT_PROGRAM local parameters: %d.\n", gl_info->
limits.arb_ps_instructions);
3678 gl_info->
limits.arb_vs_float_constants = gl_max;
3679 TRACE(
"Max ARB_VERTEX_PROGRAM float constants: %d.\n", gl_info->
limits.arb_vs_float_constants);
3681 gl_info->
limits.arb_vs_native_constants = gl_max;
3682 TRACE(
"Max ARB_VERTEX_PROGRAM native float constants: %d.\n",
3683 gl_info->
limits.arb_vs_native_constants);
3685 gl_info->
limits.arb_vs_temps = gl_max;
3686 TRACE(
"Max ARB_VERTEX_PROGRAM native temporaries: %d.\n", gl_info->
limits.arb_vs_temps);
3688 gl_info->
limits.arb_vs_instructions = gl_max;
3689 TRACE(
"Max ARB_VERTEX_PROGRAM native instructions: %d.\n", gl_info->
limits.arb_vs_instructions);
3694 gl_info->
limits.glsl_vs_float_constants = gl_max / 4;
3695 TRACE(
"Max ARB_VERTEX_SHADER float constants: %u.\n", gl_info->
limits.glsl_vs_float_constants);
3701 TRACE(
"Max vertex uniform blocks: %u (%d).\n",
3709 TRACE(
"Max hull uniform blocks: %u (%d).\n",
3717 TRACE(
"Max domain uniform blocks: %u (%d).\n",
3727 TRACE(
"Max geometry uniform blocks: %u (%d).\n",
3736 gl_info->
limits.glsl_ps_float_constants = gl_max / 4;
3737 TRACE(
"Max ARB_FRAGMENT_SHADER float constants: %u.\n", gl_info->
limits.glsl_ps_float_constants);
3739 gl_info->
limits.glsl_varyings = gl_max;
3740 TRACE(
"Max GLSL varyings: %u (%u 4 component varyings).\n", gl_max, gl_max / 4);
3746 TRACE(
"Max fragment uniform blocks: %u (%d).\n",
3754 TRACE(
"Max compute uniform blocks: %u (%d).\n",
3763 TRACE(
"Max combined uniform blocks: %d.\n", gl_max);
3765 TRACE(
"Max uniform buffer bindings: %d.\n", gl_max);
3770 gl_info->
limits.texture_buffer_offset_alignment = gl_max;
3771 TRACE(
"Minimum required texture buffer offset alignment %d.\n", gl_max);
3775 GLint max_fragment_buffers, max_combined_buffers, max_bindings;
3777 TRACE(
"Max fragment atomic counter buffers: %d.\n", max_fragment_buffers);
3779 TRACE(
"Max combined atomic counter buffers: %d.\n", max_combined_buffers);
3781 TRACE(
"Max atomic counter buffer bindings: %d.\n", max_bindings);
3786 WARN(
"Disabling ARB_shader_atomic_counters.\n");
3793 TRACE(
"Max vertex streams: %d.\n", gl_max);
3799 gl_info->
limits.shininess = 128.0f;
3804 gl_info->
limits.samples = gl_max;
3810 gl_info->
limits.framebuffer_width = gl_max;
3812 gl_info->
limits.framebuffer_height = gl_max;
3816 gl_info->
limits.framebuffer_width = gl_info->
limits.texture_size;
3817 gl_info->
limits.framebuffer_height = gl_info->
limits.texture_size;
3824 sampler_count += gl_info->
limits.samplers[
i];
3830 WARN(
"Graphics pipeline sampler count %u is greater than combined sampler count %u.\n",
3831 sampler_count, gl_info->
limits.combined_samplers);
3838 gl_info->
limits.graphics_samplers = gl_info->
limits.combined_samplers;
3841 sampler_count += gl_info->
limits.samplers[
i];
3842 if (gl_info->
limits.combined_samplers >= sampler_count)
3853 DWORD min_gl_version;
3982 const char *gl_vendor_str, *gl_renderer_str, *gl_version_str;
3988 const char *WGL_Extensions =
NULL;
3990 DWORD gl_version, gl_ext_emul_mask;
3994 GLint context_profile = 0;
4000 if (!gl_renderer_str)
4002 ERR(
"Received a NULL GL_RENDERER.\n");
4006 gl_vendor_str = (
const char *)gl_info->
gl_ops.gl.p_glGetString(
GL_VENDOR);
4010 ERR(
"Received a NULL GL_VENDOR.\n");
4015 gl_version_str = (
const char *)gl_info->
gl_ops.gl.p_glGetString(
GL_VERSION);
4017 if (!gl_version_str)
4019 ERR(
"Received a NULL GL_VERSION.\n");
4035 TRACE(
"Got a core profile context.\n");
4039 TRACE(
"GL extensions reported:\n");
4042 const char *gl_extensions = (
const char *)gl_info->
gl_ops.gl.p_glGetString(
GL_EXTENSIONS);
4046 ERR(
"Received a NULL GL_EXTENSIONS.\n");
4059 WGL_Extensions = (
const char *)
GL_EXTCALL(wglGetExtensionsStringARB(
hdc));
4060 if (!WGL_Extensions)
4061 WARN(
"WGL extensions not supported.\n");
4067 if (!gl_info->
supported[core_extensions[
i].extension]
4068 && gl_version >= core_extensions[
i].min_gl_version)
4081 FIXME(
"GL extension %u not in the GL extensions map.\n", core_extensions[
i].extension);
4120 TRACE(
" IMPLIED: GL_ARB_texture_float support (by GL_APPLE_float_pixels).\n");
4125 TRACE(
" IMPLIED: GL_ARB_half_float_pixel support (by GL_APPLE_float_pixels).\n");
4137 TRACE(
" IMPLIED: NVIDIA (NV) Texture Gen Reflection support.\n");
4142 TRACE(
" IMPLIED: ARB_vertex_array_bgra support (by EXT_vertex_array_bgra).\n");
4147 TRACE(
" IMPLIED: EXT_texture_compression_rgtc support (by ARB_texture_compression_rgtc).\n");
4152 TRACE(
" IMPLIED: ARB_texture_compression_rgtc support (by EXT_texture_compression_rgtc).\n");
4157 TRACE(
"ARB_texture_rg not supported, disabling ARB_texture_compression_rgtc.\n");
4199 TRACE(
"EXT_texture_sRGB_decode is not supported, disabling ARB_framebuffer_sRGB.\n");
4207 TRACE(
"Occlusion query counter has %d bits.\n", counter_bits);
4216 TRACE(
"Timestamp query counter has %d bits.\n", counter_bits);
4227 TRACE(
"Primitives query counter has %d bits.\n", counter_bits);
4232 TRACE(
"Transform feedback primitives query counter has %d bits.\n", counter_bits);
4238 GLint subpixel_bits;
4241 TRACE(
"Viewport supports %d subpixel bits.\n", subpixel_bits);
4244 TRACE(
"Disabling ARB_clip_control because viewport subpixel bits < 8.\n");
4253 TRACE(
"Disabling ARB_clip_control because ARB_viewport_array is not supported.\n");
4259 TRACE(
"Disabling ARB_stencil_texturing because ARB_texture_swizzle is not supported.\n");
4264 TRACE(
" IMPLIED: ATI_texture_mirror_once support (by EXT_texture_mirror_clamp).\n");
4269 TRACE(
" IMPLIED: ARB_texture_mirror_clamp_to_edge support (by ATI_texture_mirror_once).\n");
4275 ERR(
"Disabling APPLE_ycbcr_422 because of ARB_texture_storage.\n");
4283 WARN(
"Disabling ARB_draw_indirect because ARB_base_instance is not supported.\n");
4290 WARN(
"Disabling ARB_texture_multisample because immutable storage is not supported.\n");
4332 adapter->vertex_pipe->vp_get_caps(gl_info, &vertex_caps);
4343 adapter->d3d_info.wined3d_creation_flags = wined3d_creation_flags;
4344 TRACE(
"Max texture stages: %u.\n",
adapter->d3d_info.limits.ffp_blend_stages);
4346 adapter->d3d_info.valid_rt_mask = 0;
4347 for (
i = 0;
i < gl_info->
limits.buffers; ++
i)
4348 adapter->d3d_info.valid_rt_mask |= (1u <<
i);
4350 adapter->d3d_info.valid_dual_rt_mask = 0;
4351 for (
i = 0;
i < gl_info->
limits.dual_buffers; ++
i)
4352 adapter->d3d_info.valid_dual_rt_mask |= (1u <<
i);
4354 if (!
adapter->d3d_info.shader_color_key)
4357 WARN(
"Disabling ARB_texture_storage because fragment pipe doesn't support color keying.\n");
4363 gl_info->
fbo_ops.glIsRenderbuffer = gl_info->
gl_ops.ext.p_glIsRenderbuffer;
4364 gl_info->
fbo_ops.glBindRenderbuffer = gl_info->
gl_ops.ext.p_glBindRenderbuffer;
4365 gl_info->
fbo_ops.glDeleteRenderbuffers = gl_info->
gl_ops.ext.p_glDeleteRenderbuffers;
4366 gl_info->
fbo_ops.glGenRenderbuffers = gl_info->
gl_ops.ext.p_glGenRenderbuffers;
4367 gl_info->
fbo_ops.glRenderbufferStorage = gl_info->
gl_ops.ext.p_glRenderbufferStorage;
4368 gl_info->
fbo_ops.glRenderbufferStorageMultisample = gl_info->
gl_ops.ext.p_glRenderbufferStorageMultisample;
4369 gl_info->
fbo_ops.glGetRenderbufferParameteriv = gl_info->
gl_ops.ext.p_glGetRenderbufferParameteriv;
4370 gl_info->
fbo_ops.glIsFramebuffer = gl_info->
gl_ops.ext.p_glIsFramebuffer;
4371 gl_info->
fbo_ops.glBindFramebuffer = gl_info->
gl_ops.ext.p_glBindFramebuffer;
4372 gl_info->
fbo_ops.glDeleteFramebuffers = gl_info->
gl_ops.ext.p_glDeleteFramebuffers;
4373 gl_info->
fbo_ops.glGenFramebuffers = gl_info->
gl_ops.ext.p_glGenFramebuffers;
4374 gl_info->
fbo_ops.glCheckFramebufferStatus = gl_info->
gl_ops.ext.p_glCheckFramebufferStatus;
4375 gl_info->
fbo_ops.glFramebufferTexture1D = gl_info->
gl_ops.ext.p_glFramebufferTexture1D;
4376 gl_info->
fbo_ops.glFramebufferTexture2D = gl_info->
gl_ops.ext.p_glFramebufferTexture2D;
4377 gl_info->
fbo_ops.glFramebufferTexture3D = gl_info->
gl_ops.ext.p_glFramebufferTexture3D;
4378 gl_info->
fbo_ops.glFramebufferTextureLayer = gl_info->
gl_ops.ext.p_glFramebufferTextureLayer;
4379 gl_info->
fbo_ops.glFramebufferRenderbuffer = gl_info->
gl_ops.ext.p_glFramebufferRenderbuffer;
4380 gl_info->
fbo_ops.glGetFramebufferAttachmentParameteriv
4381 = gl_info->
gl_ops.ext.p_glGetFramebufferAttachmentParameteriv;
4382 gl_info->
fbo_ops.glBlitFramebuffer = gl_info->
gl_ops.ext.p_glBlitFramebuffer;
4383 gl_info->
fbo_ops.glGenerateMipmap = gl_info->
gl_ops.ext.p_glGenerateMipmap;
4384 gl_info->
fbo_ops.glFramebufferTexture = gl_info->
gl_ops.ext.p_glFramebufferTexture;
4390 gl_info->
fbo_ops.glIsRenderbuffer = gl_info->
gl_ops.ext.p_glIsRenderbufferEXT;
4391 gl_info->
fbo_ops.glBindRenderbuffer = gl_info->
gl_ops.ext.p_glBindRenderbufferEXT;
4392 gl_info->
fbo_ops.glDeleteRenderbuffers = gl_info->
gl_ops.ext.p_glDeleteRenderbuffersEXT;
4393 gl_info->
fbo_ops.glGenRenderbuffers = gl_info->
gl_ops.ext.p_glGenRenderbuffersEXT;
4394 gl_info->
fbo_ops.glRenderbufferStorage = gl_info->
gl_ops.ext.p_glRenderbufferStorageEXT;
4395 gl_info->
fbo_ops.glGetRenderbufferParameteriv = gl_info->
gl_ops.ext.p_glGetRenderbufferParameterivEXT;
4396 gl_info->
fbo_ops.glIsFramebuffer = gl_info->
gl_ops.ext.p_glIsFramebufferEXT;
4397 gl_info->
fbo_ops.glBindFramebuffer = gl_info->
gl_ops.ext.p_glBindFramebufferEXT;
4398 gl_info->
fbo_ops.glDeleteFramebuffers = gl_info->
gl_ops.ext.p_glDeleteFramebuffersEXT;
4399 gl_info->
fbo_ops.glGenFramebuffers = gl_info->
gl_ops.ext.p_glGenFramebuffersEXT;
4400 gl_info->
fbo_ops.glCheckFramebufferStatus = gl_info->
gl_ops.ext.p_glCheckFramebufferStatusEXT;
4401 gl_info->
fbo_ops.glFramebufferTexture1D = gl_info->
gl_ops.ext.p_glFramebufferTexture1DEXT;
4402 gl_info->
fbo_ops.glFramebufferTexture2D = gl_info->
gl_ops.ext.p_glFramebufferTexture2DEXT;
4403 gl_info->
fbo_ops.glFramebufferTexture3D = gl_info->
gl_ops.ext.p_glFramebufferTexture3DEXT;
4404 gl_info->
fbo_ops.glFramebufferRenderbuffer = gl_info->
gl_ops.ext.p_glFramebufferRenderbufferEXT;
4405 gl_info->
fbo_ops.glGetFramebufferAttachmentParameteriv
4406 = gl_info->
gl_ops.ext.p_glGetFramebufferAttachmentParameterivEXT;
4407 gl_info->
fbo_ops.glGenerateMipmap = gl_info->
gl_ops.ext.p_glGenerateMipmapEXT;
4411 WARN_(d3d_perf)(
"Framebuffer objects not supported, falling back to backbuffer offscreen rendering mode.\n");
4417 gl_info->
fbo_ops.glFramebufferTexture = gl_info->
gl_ops.ext.p_glFramebufferTextureARB;
4418 gl_info->
fbo_ops.glFramebufferTextureLayer = gl_info->
gl_ops.ext.p_glFramebufferTextureLayerARB;
4422 gl_info->
fbo_ops.glBlitFramebuffer = gl_info->
gl_ops.ext.p_glBlitFramebufferEXT;
4426 gl_info->
fbo_ops.glRenderbufferStorageMultisample
4427 = gl_info->
gl_ops.ext.p_glRenderbufferStorageMultisampleEXT;
4450 TRACE(
"Guessed GL vendor %#x.\n", gl_vendor);
4461 gl_renderer_str, &gl_vendor, &
vendor);
4474 gl_ext_emul_mask =
adapter->vertex_pipe->vp_get_emul_mask(gl_info)
4475 |
adapter->fragment_pipe->get_emul_mask(gl_info);
4486 TRACE(
"wined3d %p, reporting %u adapters.\n",
4494 FIXME(
"wined3d %p, init_function %p stub!\n",
wined3d, init_function);
4508 TRACE(
"wined3d %p, adapter_idx %u, desc %p.\n",
wined3d, adapter_idx,
desc);
4526 desc->rotation = rotation;
4527 desc->monitor = monitor;
4546 TRACE(
"wined3d %p, adapter_idx %u, format %s, scanline_ordering %#x.\n",
4575 if (
mode.dmBitsPerPel == 32 ||
mode.dmBitsPerPel == 16) ++
i;
4577 else if (
mode.dmBitsPerPel == format_bits)
4583 TRACE(
"Returning %u matching modes (out of %u total) for adapter %u.\n",
i,
j, adapter_idx);
4600 TRACE(
"wined3d %p, adapter_idx %u, format %s, scanline_ordering %#x, mode_idx %u, mode %p.\n",
4611 m.dmSize =
sizeof(
m);
4613 while (
i <= mode_idx)
4617 WARN(
"Invalid mode_idx %u.\n", mode_idx);
4635 if (
m.dmBitsPerPel == 32 ||
m.dmBitsPerPel == 16) ++
i;
4637 else if (
m.dmBitsPerPel == format_bits)
4643 mode->width =
m.dmPelsWidth;
4644 mode->height =
m.dmPelsHeight;
4647 mode->refresh_rate =
m.dmDisplayFrequency;
4661 TRACE(
"%ux%u@%u %u bpp, %s %#x.\n",
mode->width,
mode->height,
mode->refresh_rate,
4670 unsigned int i,
j, mode_count, matching_mode_count, closest;
4675 TRACE(
"wined3d %p, adapter_idx %u, mode %p.\n",
wined3d, adapter_idx,
mode);
4680 WARN(
"Adapter has 0 matching modes.\n");
4684 if (!(modes =
heap_calloc(mode_count,
sizeof(*modes))))
4686 if (!(matching_modes =
heap_calloc(mode_count,
sizeof(*matching_modes))))
4692 for (
i = 0;
i < mode_count; ++
i)
4701 matching_modes[
i] = &modes[
i];
4704 matching_mode_count = mode_count;
4708 for (
i = 0,
j = 0;
i < matching_mode_count; ++
i)
4711 matching_modes[
j++] = matching_modes[
i];
4714 matching_mode_count =
j;
4717 if (
mode->refresh_rate)
4719 for (
i = 0,
j = 0;
i < matching_mode_count; ++
i)
4722 matching_modes[
j++] = matching_modes[
i];
4725 matching_mode_count =
j;
4732 ¤t_mode,
NULL)))
4743 for (
i = 0,
j = 0;
i < matching_mode_count; ++
i)
4755 *
mode = *matching_modes[
j];
4760 TRACE(
"Returning %ux%u@%u %s %#x.\n",
mode->width,
mode->height,
4762 mode->scanline_ordering);
4773 TRACE(
"wined3d %p, adapter_idx %u, display_mode %p, rotation %p.\n",
4782 m.dmSize =
sizeof(
m);
4785 mode->width =
m.dmPelsWidth;
4786 mode->height =
m.dmPelsHeight;
4789 mode->refresh_rate =
m.dmDisplayFrequency;
4798 WARN(
"Overriding format %s with stored format %s.\n",
4813 switch (
m.u1.s2.dmDisplayOrientation)
4828 FIXME(
"Unhandled display rotation %#x.\n",
m.u1.s2.dmDisplayOrientation);
4834 TRACE(
"Returning %ux%u@%u %s %#x.\n",
mode->width,
mode->height,
4836 mode->scanline_ordering);
4849 TRACE(
"wined3d %p, adapter_idx %u, mode %p.\n",
wined3d, adapter_idx,
mode);
4855 memset(&new_mode, 0,
sizeof(new_mode));
4856 new_mode.
dmSize =
sizeof(new_mode);
4857 memset(¤t_mode, 0,
sizeof(current_mode));
4858 current_mode.
dmSize =
sizeof(current_mode);
4874 if (
mode->refresh_rate)
4883 new_format_id =
mode->format_id;
4889 ERR(
"Failed to read mode from registry.\n");
4898 ERR(
"Failed to get current display mode.\n");
4908 TRACE(
"Skipping redundant mode setting call.\n");
4909 adapter->screen_format = new_format_id;
4918 WARN(
"ChangeDisplaySettingsExW failed, trying without the refresh rate.\n");
4919 new_mode.
dmFields &= ~DM_DISPLAYFREQUENCY;
4928 adapter->screen_format = new_format_id;
4945 TRACE(
"wined3d %p, adapter_idx %u, flags %#x, identifier %p.\n",
4975 ERR(
"Failed to convert device name, last error %#x.\n",
GetLastError());
4997 LONGLONG freq_per_frame, freq_per_line;
5003 FIXME(
"wined3d %p, adapter_idx %u, raster_status %p semi-stub!\n",
5004 wined3d, adapter_idx, raster_status);
5006 WARN(
"wined3d %p, adapter_idx %u, raster_status %p semi-stub!\n",
5007 wined3d, adapter_idx, raster_status);
5021 mode.refresh_rate = 60;
5023 freq_per_frame = freq_per_sec.
QuadPart /
mode.refresh_rate;
5025 freq_per_line = freq_per_frame / (
mode.height + 20);
5026 raster_status->
scan_line = (
counter.QuadPart % freq_per_frame) / freq_per_line;
5035 TRACE(
"Returning fake value, in_vblank %u, scan_line %u.\n",
5099 TRACE(
"wined3d %p, adapter_idx %u, device_type %s,\n"
5100 "adapter_format %s, render_target_format %s, depth_stencil_format %s.\n",
5115 TRACE(
"Formats match.\n");
5122 unsigned int cfg_count;
5126 cfg_count =
adapter->cfg_count;
5127 for (
i = 0;
i < cfg_count; ++
i)
5132 TRACE(
"Formats match.\n");
5138 TRACE(
"Unsupported format pair: %s and %s.\n",
5153 TRACE(
"wined3d %p, adapter_idx %u, device_type %s, surface_format %s, "
5154 "windowed %#x, multisample_type %#x, quality_levels %p.\n",
5156 windowed, multisample_type, quality_levels);
5166 FIXME(
"multisample_type %u not handled yet.\n", multisample_type);
5170 if (multisample_type && !(
format->multisample_types & 1u << (multisample_type - 1)))
5180 *quality_levels = 1;
5185 TRACE(
"Returning not supported.\n");
5198 switch (ds_format->
id)
5202 TRACE(
"[FAILED] - not supported on windows.\n");
5254 TRACE(
"[FAILED]\n");
5265 TRACE(
"Pixel format %d is compatible with format %s.\n",
5281 TRACE(
"[FAILED] - Not enumerated on Windows.\n");
5303 TRACE(
"[FAILED] - Not available on GDI surfaces.\n");
5322 TRACE(
"[FAILED]\n");
5343 DWORD format_flags = 0;
5344 DWORD allowed_usage;
5346 TRACE(
"wined3d %p, adapter_idx %u, device_type %s, adapter_format %s, usage %s, %s, "
5347 "resource_type %s, check_format %s.\n",
5358 switch (resource_type)
5390 TRACE(
"[FAILED] - Not supported for plain surfaces.\n");
5418 TRACE(
"[FAILED] - No shadow sampler support.\n");
5449 TRACE(
"Requested usage %#x, but resource type %s only allows %#x.\n",
5471 TRACE(
"Requested texturing support, but wined3d was created with WINED3D_NO3D.\n");
5475 for (; gl_type <= gl_type_end; ++gl_type)
5477 if ((
format->flags[gl_type] & format_flags) != format_flags)
5479 TRACE(
"Requested format flags %#x, but format %s only has %#x.\n",
5487 TRACE(
"Requested WINED3DUSAGE_RENDERTARGET, but format %s is not supported for render targets.\n",
5499 TRACE(
"Requested WINED3DUSAGE_DEPTHSTENCIL, but format %s is not supported for depth / stencil buffers.\n",
5505 mipmap_gen_supported =
FALSE;
5510 TRACE(
"No WINED3DUSAGE_AUTOGENMIPMAP support, returning WINED3DOK_NOAUTOGEN.\n");
5521 unsigned int row_pitch, slice_pitch;
5523 TRACE(
"wined3d %p, adapter_idx %u, format_id %s, width %u.\n",
5531 1,
width, 1, &row_pitch, &slice_pitch);
5539 FIXME(
"wined3d %p, adapter_idx %u, device_type %s, src_format %s, dst_format %s stub!\n",
5552 TRACE(
"wined3d %p, adapter_idx %u, device_type %s, display_format %s, backbuffer_format %s, windowed %#x.\n",
5585 present_conversion =
FALSE;
5590 TRACE(
"Unsupported format combination %s / %s in windowed mode.\n",
5595 if (present_conversion)
5600 backbuffer_format = display_format;
5605 TRACE(
"Format conversion from %s to %s not supported.\n",
5618 TRACE(
"Unsupported format combination %s / %s.\n",
5626 TRACE(
"Unsupported format combination %s / %s.\n",
5634 TRACE(
"Unsupported format combination %s / %s.\n",
5642 TRACE(
"Unsupported format combination %s / %s.\n",
5666 DWORD ckey_caps, blit_caps, fx_caps;
5670 TRACE(
"wined3d %p, adapter_idx %u, device_type %s, caps %p.\n",
6029 adapter->vertex_pipe->vp_get_caps(&
adapter->gl_info, &vertex_caps);
6081 caps->
VS20Caps.static_flow_control_depth = 1;
6089 caps->
VS20Caps.dynamic_flow_control_depth = 0;
6091 caps->
VS20Caps.static_flow_control_depth = 0;
6122 adapter->gl_info.limits.arb_ps_instructions);
6128 caps->
PS20Caps.dynamic_flow_control_depth = 0;
6140 caps->
PS20Caps.dynamic_flow_control_depth = 0;
6142 caps->
PS20Caps.static_flow_control_depth = 0;
6143 caps->
PS20Caps.instruction_slot_count = 0;
6210 caps->
ddraw_caps.svb_color_key_caps = ckey_caps;
6213 caps->
ddraw_caps.vsb_color_key_caps = ckey_caps;
6216 caps->
ddraw_caps.ssb_color_key_caps = ckey_caps;
6251 TRACE(
"wined3d %p, adapter_idx %u, device_type %#x, focus_window %p, flags %#x, surface_alignment %u, device_parent %p, device %p.\n",
6259 if (!(
object = heap_alloc_zero(
sizeof(*
object))))
6266 WARN(
"Failed to initialize device, hr %#x.\n",
hr);
6271 TRACE(
"Created device %p.\n",
object);
6281 ERR(
"Invalid vertex attribute function called.\n");
6287 ERR(
"Invalid texcoord function called.\n");
6293 ERR(
"Invalid attribute function called.\n");
6304 FIXME(
"Add a test for fixed function position from d3dcolor type.\n");
6315 if (
pos[3] != 0.0f &&
pos[3] != 1.0f)
6317 float w = 1.0f /
pos[3];
6352 WARN(
"GL_EXT_secondary_color not supported.\n");
6498 UINT attrib_count = 0;
6520 for (
i = 0,
adapter->cfg_count = 0;
i < cfg_count; ++
i)
6558 TRACE(
"iPixelFormat=%d, iPixelType=%#x, doubleBuffer=%d, RGBA=%d/%d/%d/%d, "
6559 "depth=%d, stencil=%d, samples=%d, windowDrawable=%d\n",
6574 for (
i = 0,
adapter->cfg_count = 0;
i < cfg_count; ++
i)
6589 TRACE(
"Skipping format %d because it isn't ICD accelerated.\n",
format_id);
6607 TRACE(
"iPixelFormat=%d, iPixelType=%#x, doubleBuffer=%d, RGBA=%d/%d/%d/%d, "
6608 "depth=%d, stencil=%d, windowDrawable=%d\n",
6620 const char *gl_vendor, *gl_renderer;
6625 gl_vendor = (
const char *)gl_info->
gl_ops.gl.p_glGetString(
GL_VENDOR);
6627 if (!gl_vendor || !gl_renderer
6648 static const DWORD supported_gl_versions[] =
6658 DWORD max_gl_version;
6665#ifdef USE_WIN32_OPENGL
6668#define USE_GL_FUNC(f) gl_info->gl_ops.gl.p_##f = (void *)GetProcAddress(mod_gl, #f);
6680 if (!wgl_driver || wgl_driver == (
void *)-1)
return FALSE;
6682 gl_info->
gl_ops.gl = wgl_driver->
gl;
6686 glEnableWINE = gl_info->
gl_ops.gl.p_glEnable;
6687 glDisableWINE = gl_info->
gl_ops.gl.p_glDisable;
6694 TRACE(
"Allocated LUID %08x:%08x for adapter %p.\n",
6699 ERR(
"Failed to get a GL context for adapter %p.\n",
adapter);
6707 const char *gl_extensions = (
const char *)gl_info->
gl_ops.gl.p_glGetString(
GL_EXTENSIONS);
6710 ERR_(winediag)(
"GL_ARB_compatibility not supported, requesting context with GL version 3.2.\n");
6717 if (supported_gl_versions[
i] <= max_gl_version)
6722 ERR_(winediag)(
"Requested invalid GL version %u.%u.\n",
6723 max_gl_version >> 16, max_gl_version & 0xffff);
6734 WARN(
"Couldn't create an OpenGL %u.%u context, trying fallback to a lower version.\n",
6735 supported_gl_versions[
i] >> 16, supported_gl_versions[
i] & 0xffff);
6740 ERR(
"Failed to initialize GL caps for adapter %p.\n",
adapter);
6746 ERR_(winediag)(
"You are using the backbuffer for offscreen rendering. "
6747 "This is unsupported, and will be removed in a future version.\n");
6754 WARN(
"No suitable pixel formats found.\n");
6762 ERR(
"Failed to initialize GL format info.\n");
6772 display_device.
cb =
sizeof(display_device);
6791 adapter->driver_info.name =
"Display";
6792 adapter->driver_info.description =
"WineD3D DirectDraw Emulation";
6796 adapter->vram_bytes = 128 * 1024 * 1024;
6805 display_device.
cb =
sizeof(display_device);
6827 TRACE(
"Initializing adapters.\n");
6835 WARN(
"Failed to initialize adapter.\n");
unsigned long long UINT64
int strcmp(const char *String1, const char *String2)
char * strstr(char *String1, char *String2)
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
ACPI_SIZE strlen(const char *String)
int strncmp(const char *String1, const char *String2, ACPI_SIZE Count)
char * strchr(const char *String, int ch)
static BOOL heap_free(void *mem)
const struct wined3d_shader_backend_ops arb_program_shader_backend
const struct fragment_pipeline arbfp_fragment_pipeline
#define InterlockedIncrement
#define InterlockedDecrement
const struct fragment_pipeline atifs_fragment_pipeline
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define STDMETHODCALLTYPE
HRESULT device_init(struct d3d8_device *device, struct d3d8 *parent, struct wined3d *wined3d, UINT adapter, D3DDEVTYPE device_type, HWND focus_window, DWORD flags, D3DPRESENT_PARAMETERS *parameters) DECLSPEC_HIDDEN
float float_16_to_32(const unsigned short in) DECLSPEC_HIDDEN
HGLRC context_create_wgl_attribs(const struct wined3d_gl_info *gl_info, HDC hdc, HGLRC share_ctx)
struct wined3d_context * context_get_current(void)
const struct wined3d_shader_backend_ops none_shader_backend
const struct wined3d_vertex_pipe_ops none_vertex_pipe
const struct wined3d_vertex_pipe_ops ffp_vertex_pipe
const struct fragment_pipeline none_fragment_pipe
const struct fragment_pipeline ffp_fragment_pipeline
void wined3d_release_dc(HWND window, HDC dc)
const char * debug_d3ddevicetype(enum wined3d_device_type device_type)
const struct wined3d_format * wined3d_get_format(const struct wined3d_gl_info *gl_info, enum wined3d_format_id format_id, unsigned int resource_usage)
const char * debug_d3dformat(enum wined3d_format_id format_id)
BOOL wined3d_caps_gl_ctx_test_viewport_subpixel_bits(struct wined3d_caps_gl_ctx *ctx)
const char * debug_d3dresourcetype(enum wined3d_resource_type resource_type)
const char * debug_d3dusage(DWORD usage)
const char * debug_glerror(GLenum error)
void wined3d_format_calculate_pitch(const struct wined3d_format *format, unsigned int alignment, unsigned int width, unsigned int height, unsigned int *row_pitch, unsigned int *slice_pitch)
const char * debug_d3dusagequery(DWORD usage)
BOOL wined3d_adapter_init_format_info(struct wined3d_adapter *adapter, struct wined3d_caps_gl_ctx *ctx)
enum wined3d_format_id pixelformat_for_depth(DWORD depth)
BOOL WINAPI AllocateLocallyUniqueId(PLUID Luid)
#define GetProcAddress(x, y)
static __inline const char * debugstr_an(const char *s, int n)
static __inline const char * wine_dbgstr_longlong(ULONGLONG ll)
#define WINE_DECLARE_DEBUG_CHANNEL(x)
#define WideCharToMultiByte
static const WCHAR *const ext[]
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
BOOL WINAPI QueryPerformanceFrequency(OUT PLARGE_INTEGER lpFrequency)
BOOL WINAPI QueryPerformanceCounter(OUT PLARGE_INTEGER lpPerformanceCount)
BOOL WINAPI GetVersionExW(IN LPOSVERSIONINFOW lpVersionInformation)
#define check(expected, result)
#define GL_MAX_TEXTURE_SIZE
#define GL_TEXTURE_MIN_FILTER
GLAPI void GLAPIENTRY glMultiTexCoord3fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r)
GLAPI void GLAPIENTRY glMultiTexCoord4fvARB(GLenum target, const GLfloat *v)
GLAPI void GLAPIENTRY glMultiTexCoord3fvARB(GLenum target, const GLfloat *v)
GLAPI void GLAPIENTRY glActiveTextureARB(GLenum texture)
GLAPI void GLAPIENTRY glCompressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data)
#define GL_NEAREST_MIPMAP_NEAREST
GLAPI void GLAPIENTRY glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
#define GL_UNSIGNED_SHORT
#define GL_ALIASED_POINT_SIZE_RANGE
GLint GLint GLint GLint GLint x
GLAPI void GLAPIENTRY glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data)
#define GL_MAX_TEXTURE_UNITS_ARB
GLAPI void GLAPIENTRY glClientActiveTextureARB(GLenum texture)
GLAPI void GLAPIENTRY glMultiTexCoord2fARB(GLenum target, GLfloat s, GLfloat t)
#define GL_TEXTURE_MAX_LEVEL
#define GL_NEAREST_MIPMAP_LINEAR
GLAPI void GLAPIENTRY glGetCompressedTexImage(GLenum target, GLint lod, GLvoid *img)
GLAPI void GLAPIENTRY glMultiTexCoord4fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
#define GL_LINEAR_MIPMAP_LINEAR
GLint GLint GLint GLint GLint GLint y
GLAPI void GLAPIENTRY glTexImage3D(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels)
#define GL_POINT_SIZE_RANGE
#define GL_COLOR_BUFFER_BIT
GLAPI void GLAPIENTRY glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data)
GLAPI void GLAPIENTRY glMultiTexCoord2svARB(GLenum target, const GLshort *v)
#define GL_LINEAR_MIPMAP_NEAREST
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLAPI void GLAPIENTRY glBlendEquation(GLenum mode)
#define GL_TEXTURE_MAG_FILTER
#define GL_TRIANGLE_STRIP
GLint GLint GLsizei width
GLAPI void GLAPIENTRY glTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels)
GLAPI void GLAPIENTRY glMultiTexCoord1fARB(GLenum target, GLfloat s)
GLAPI void GLAPIENTRY glActiveTexture(GLenum texture)
#define GL_UNSIGNED_INT_8_8_8_8_REV
GLAPI void GLAPIENTRY glMultiTexCoord1fvARB(GLenum target, const GLfloat *v)
GLAPI void GLAPIENTRY glMultiTexCoord2fvARB(GLenum target, const GLfloat *v)
GLAPI void GLAPIENTRY glMultiTexCoord4svARB(GLenum target, const GLshort *v)
GLAPI void GLAPIENTRY glCompressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data)
#define GL_TEXTURE_RED_SIZE
void install_gl_compat_wrapper(struct wined3d_gl_info *gl_info, enum wined3d_gl_extension ext)
#define GL_MAX_3D_TEXTURE_SIZE_EXT
#define GL_MAX_UNIFORM_BUFFER_BINDINGS
#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB
#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS
#define GL_PROGRAM_ERROR_POSITION_ARB
#define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS
#define GL_MIRRORED_REPEAT_ARB
#define GL_PROGRAM_FORMAT_ASCII_ARB
#define GL_PROGRAM_ERROR_STRING_ARB
#define GL_FRAGMENT_PROGRAM_ARB
#define GL_CONTEXT_PROFILE_MASK
#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB
#define GL_MAX_CLIP_DISTANCES
#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS
#define GL_CLAMP_TO_BORDER_ARB
#define GL_MAX_SHININESS_NV
#define GL_COLOR_ATTACHMENT0
#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB
#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS
#define GL_MAX_VERTEX_UNIFORM_BLOCKS
#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB
#define GL_MAX_GENERAL_COMBINERS_NV
#define GL_MAX_VERTEX_ATTRIBS_ARB
#define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS
#define GL_PRIMITIVES_GENERATED
#define GL_FRAMEBUFFER_COMPLETE
#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB
#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS
GLboolean GLenum GLenum GLvoid * values
#define GL_MAX_TEXTURE_COORDS_ARB
#define GL_MAX_VERTEX_UNITS_ARB
#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS
#define GL_MAX_TEXTURE_IMAGE_UNITS
#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS
#define GL_VIEWPORT_SUBPIXEL_BITS
#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB
#define GL_SAMPLES_PASSED
#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN
#define GL_SHADING_LANGUAGE_VERSION_ARB
#define GL_MAX_COMBINED_UNIFORM_BLOCKS
#define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS
#define GL_CONTEXT_CORE_PROFILE_BIT
#define GL_MIN_MAP_BUFFER_ALIGNMENT
#define GL_MAX_VARYING_FLOATS_ARB
#define GL_MAX_VERTEX_STREAMS
#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB
#define GL_VERTEX_PROGRAM_ARB
GLubyte GLubyte GLubyte GLubyte w
#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB
#define GL_MAX_DRAW_BUFFERS_ARB
#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS
GLsizeiptr const GLvoid GLenum usage
#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS
#define GL_NUM_EXTENSIONS
#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB
#define GL_PIXEL_UNPACK_BUFFER
#define GL_QUERY_COUNTER_BITS
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
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
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 GLint GLint j
const struct wined3d_shader_backend_ops glsl_shader_backend
const struct fragment_pipeline glsl_fragment_pipe
const struct wined3d_vertex_pipe_ops glsl_vertex_pipe
_Check_return_ _CRTIMP int __cdecl sscanf(_In_z_ const char *_Src, _In_z_ _Scanf_format_string_ const char *_Format,...)
_Check_return_ int __cdecl atoi(_In_z_ const char *_Str)
#define memcpy(s1, s2, n)
static const WCHAR desc[]
static const char * dst_format
static BOOL check_format(LPSTR path, LPSTR inf)
struct @1673::@1674 driver
HMONITOR WINAPI MonitorFromPoint(POINT, DWORD)
const struct fragment_pipeline nvts_fragment_pipeline
const struct fragment_pipeline nvrc_fragment_pipeline
static HGLRC(WINAPI *pwglCreateContextAttribsARB)(HDC hDC
#define WS_OVERLAPPEDWINDOW
png_const_structrp png_const_inforp int * unit
static void * heap_calloc(SIZE_T count, SIZE_T size)
static PIXELFORMATDESCRIPTOR pfd
ULONG dwOSVersionInfoSize
DWORD MaxVertexShader30InstructionSlots
DWORD MaxVertexShaderConst
DWORD MaxTextureAspectRatio
struct wined3d_pixel_shader_caps PS20Caps
struct wined3d_ddraw_caps ddraw_caps
DWORD MaxVertexBlendMatrixIndex
DWORD VolumeTextureFilterCaps
UINT MasterAdapterOrdinal
float MaxNpatchTessellationLevel
UINT AdapterOrdinalInGroup
DWORD StretchRectFilterCaps
UINT NumberOfAdaptersInGroup
DWORD CubeTextureFilterCaps
float PixelShader1xMaxValue
struct wined3d_vertex_shader_caps VS20Caps
DWORD MaxVShaderInstructionsExecuted
DWORD VertexProcessingCaps
DWORD VolumeTextureAddressCaps
DWORD MaxTextureBlendStages
DWORD MaxVertexBlendMatrices
BOOL shader_double_precision
enum wined3d_device_type DeviceType
DWORD MaxSimultaneousTextures
DWORD VertexTextureFilterCaps
DWORD VertexShaderVersion
DWORD PresentationIntervals
DWORD MaxPixelShader30InstructionSlots
DWORD MaxPShaderInstructionsExecuted
void(* apply)(struct wined3d_gl_info *gl_info)
DWORD MaxSimultaneousTextures
DWORD MaxTextureBlendStages
const struct wined3d_renderer_table * cards
enum wined3d_gl_vendor gl_vendor
enum wined3d_display_driver driver
struct opengl_funcs::@3669 wgl
struct opengl_funcs::@3670 gl
LARGE_INTEGER driver_version
const struct wined3d_gl_info * gl_info
BOOL shader_double_precision
struct wined3d_ffp_attrib_ops ffp_attrib_ops
struct wined3d_device_parent * device_parent
unsigned char surface_alignment
enum wined3d_scanline_ordering scanline_ordering
enum wined3d_pci_vendor vendor
enum wined3d_pci_device device
const char * extension_string
enum wined3d_gl_extension extension
wined3d_ffp_texcoord_func texcoord[WINED3D_FFP_EMIT_COUNT]
wined3d_ffp_attrib_func position[WINED3D_FFP_EMIT_COUNT]
wined3d_generic_attrib_func generic[WINED3D_FFP_EMIT_COUNT]
wined3d_ffp_attrib_func normal[WINED3D_FFP_EMIT_COUNT]
wined3d_ffp_attrib_func specular[WINED3D_FFP_EMIT_COUNT]
wined3d_ffp_attrib_func diffuse[WINED3D_FFP_EMIT_COUNT]
DWORD reserved_arb_constants
BOOL supported[WINED3D_GL_EXT_COUNT]
struct opengl_funcs gl_ops
DWORD reserved_glsl_constants
struct wined3d_gl_limits limits
struct wined3d_fbo_ops fbo_ops
GLint wrap_lookup[WINED3D_TADDRESS_MIRROR_ONCE - WINED3D_TADDRESS_WRAP+1]
DWORD selected_gl_version
enum wined3d_pci_device id
unsigned int multisample_textures
int offscreen_rendering_mode
unsigned short pci_vendor_id
UINT64 emulated_textureram
unsigned short pci_device_id
DWORD vertex_processing_caps
DWORD max_user_clip_planes
BOOL emulated_flatshading
BOOL ffp_generic_attributes
DWORD max_vertex_blend_matrix_index
DWORD max_vertex_blend_matrices
struct wined3d_adapter adapters[1]
struct _LARGE_INTEGER::@2299 u
BOOL WINAPI wglDeleteContext(HGLRC hglrc)
HDC WINAPI wglGetCurrentDC(void)
PROC WINAPI wglGetProcAddress(LPCSTR name)
HGLRC WINAPI wglGetCurrentContext(void)
HGLRC WINAPI wglCreateContext(HDC hdc)
BOOL WINAPI wglMakeCurrent(HDC hdc, HGLRC hglrc)
#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT
#define WGL_STENCIL_BITS_ARB
#define GL_MAX_COMPUTE_UNIFORM_BLOCKS
#define GL_MAX_FRAMEBUFFER_WIDTH
#define WGL_BLUE_BITS_ARB
#define GL_MAX_TEXTURE_MAX_ANISOTROPY
#define WGL_RENDERER_VENDOR_ID_WINE
#define WGL_GREEN_BITS_ARB
#define WGL_ALPHA_BITS_ARB
#define WGL_RENDERER_DEVICE_ID_WINE
#define WGL_PIXEL_TYPE_ARB
#define WGL_DEPTH_BITS_ARB
#define WGL_DOUBLE_BUFFER_ARB
#define WGL_TYPE_COLORINDEX_ARB
#define WGL_DRAW_TO_WINDOW_ARB
#define WGL_TYPE_RGBA_ARB
#define WGL_NUMBER_PIXEL_FORMATS_ARB
#define WGL_SAMPLE_BUFFERS_ARB
#define GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS
#define WGL_RENDERER_VIDEO_MEMORY_WINE
#define WGL_AUX_BUFFERS_ARB
#define GL_MIRROR_CLAMP_TO_EDGE
#define GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX
#define GL_MAX_FRAMEBUFFER_HEIGHT
#define WGL_COLOR_BITS_ARB
#define WINE_WGL_DRIVER_VERSION
struct opengl_funcs *CDECL __wine_get_wgl_driver(HDC hdc, UINT version)
LONG WINAPI ChangeDisplaySettingsExW(LPCWSTR lpszDeviceName, LPDEVMODEW lpDevMode, HWND hwnd, DWORD dwflags, LPVOID lParam)
BOOL WINAPI EnumDisplayDevicesW(LPCWSTR lpDevice, DWORD iDevNum, PDISPLAY_DEVICEW lpDisplayDevice, DWORD dwFlags)
BOOL WINAPI EnumDisplaySettingsW(LPCWSTR lpszDeviceName, DWORD iModeNum, LPDEVMODEW lpDevMode)
BOOL WINAPI EnumDisplaySettingsExW(LPCWSTR lpszDeviceName, DWORD iModeNum, LPDEVMODEW lpDevMode, DWORD dwFlags)
DWORD WINAPI GetLastError(void)
void WINAPI DebugBreak(void)
_In_opt_ SURFOBJ _In_opt_ SURFOBJ _In_ CLIPOBJ _In_opt_ XLATEOBJ _In_ RECTL _In_opt_ POINTL _In_opt_ POINTL _In_opt_ BRUSHOBJ * pbo
static enum wined3d_pci_device card_fallback_nvidia[]
enum wined3d_pci_vendor card_vendor
static void quirk_limited_tex_filtering(struct wined3d_gl_info *gl_info)
static const struct driver_version_information driver_version_table[]
static void wined3d_caps_gl_ctx_destroy(const struct wined3d_caps_gl_ctx *ctx)
static void WINE_GLAPI diffuse_d3dcolor(const void *data)
static const struct wined3d_renderer_table cards_intel[]
static const struct gl_vendor_selection vmware_gl_vendor_table[]
ULONG CDECL wined3d_decref(struct wined3d *wined3d)
static enum wined3d_pci_device wined3d_guess_card(const struct shader_caps *shader_caps, const struct fragment_caps *fragment_caps, DWORD glsl_version, const char *gl_renderer, enum wined3d_gl_vendor *gl_vendor, enum wined3d_pci_vendor *card_vendor)
static BOOL match_dx10_capable(const struct wined3d_gl_info *gl_info, struct wined3d_caps_gl_ctx *ctx, const char *gl_renderer, enum wined3d_gl_vendor gl_vendor, enum wined3d_pci_vendor card_vendor, enum wined3d_pci_device device)
HRESULT CDECL wined3d_check_device_type(const struct wined3d *wined3d, UINT adapter_idx, enum wined3d_device_type device_type, enum wined3d_format_id display_format, enum wined3d_format_id backbuffer_format, BOOL windowed)
UINT CDECL wined3d_calculate_format_pitch(const struct wined3d *wined3d, UINT adapter_idx, enum wined3d_format_id format_id, UINT width)
static const struct driver_version_information * get_driver_version_info(enum wined3d_display_driver driver, enum wined3d_driver_model driver_model)
static BOOL match_geforce5(const struct wined3d_gl_info *gl_info, struct wined3d_caps_gl_ctx *ctx, const char *gl_renderer, enum wined3d_gl_vendor gl_vendor, enum wined3d_pci_vendor card_vendor, enum wined3d_pci_device device)
static const struct driver_quirk quirk_table[]
HRESULT CDECL wined3d_check_device_format_conversion(const struct wined3d *wined3d, UINT adapter_idx, enum wined3d_device_type device_type, enum wined3d_format_id src_format, enum wined3d_format_id dst_format)
UINT CDECL wined3d_get_adapter_count(const struct wined3d *wined3d)
#define MAP_GL_FUNCTION(core_func, ext_func)
static BOOL wined3d_adapter_init(struct wined3d_adapter *adapter, UINT ordinal, DWORD wined3d_creation_flags)
static void WINE_GLAPI generic_float16_2(GLuint idx, const void *data)
static void wined3d_adapter_init_limits(struct wined3d_gl_info *gl_info)
HRESULT CDECL wined3d_check_device_format(const struct wined3d *wined3d, UINT adapter_idx, enum wined3d_device_type device_type, enum wined3d_format_id adapter_format_id, DWORD usage, enum wined3d_resource_type resource_type, enum wined3d_format_id check_format_id)
static void wined3d_adapter_cleanup(struct wined3d_adapter *adapter)
HRESULT CDECL wined3d_device_create(struct wined3d *wined3d, UINT adapter_idx, enum wined3d_device_type device_type, HWND focus_window, DWORD flags, BYTE surface_alignment, struct wined3d_device_parent *device_parent, struct wined3d_device **device)
static void quirk_fbo_tex_update(struct wined3d_gl_info *gl_info)
#define DEFAULT_REFRESH_RATE
static BOOL match_broken_rgba16(const struct wined3d_gl_info *gl_info, struct wined3d_caps_gl_ctx *ctx, const char *gl_renderer, enum wined3d_gl_vendor gl_vendor, enum wined3d_pci_vendor card_vendor, enum wined3d_pci_device device)
HRESULT CDECL wined3d_get_output_desc(const struct wined3d *wined3d, unsigned int adapter_idx, struct wined3d_output_desc *desc)
static const struct wined3d_extension_map gl_extension_map[]
static void quirk_disable_nvvp_clip(struct wined3d_gl_info *gl_info)
static BOOL match_apple_nonr500ati(const struct wined3d_gl_info *gl_info, struct wined3d_caps_gl_ctx *ctx, const char *gl_renderer, enum wined3d_gl_vendor gl_vendor, enum wined3d_pci_vendor card_vendor, enum wined3d_pci_device device)
static void WINE_GLAPI invalid_func(const void *data)
static const struct gl_vendor_selection intel_gl_vendor_table[]
static BOOL match_broken_nv_clip(const struct wined3d_gl_info *gl_info, struct wined3d_caps_gl_ctx *ctx, const char *gl_renderer, enum wined3d_gl_vendor gl_vendor, enum wined3d_pci_vendor card_vendor, enum wined3d_pci_device device)
UINT CDECL wined3d_get_adapter_mode_count(const struct wined3d *wined3d, UINT adapter_idx, enum wined3d_format_id format_id, enum wined3d_scanline_ordering scanline_ordering)
static void WINE_GLAPI generic_d3dcolor(GLuint idx, const void *data)
static BOOL match_broken_arb_fog(const struct wined3d_gl_info *gl_info, struct wined3d_caps_gl_ctx *ctx, const char *gl_renderer, enum wined3d_gl_vendor gl_vendor, enum wined3d_pci_vendor card_vendor, enum wined3d_pci_device device)
static void load_gl_funcs(struct wined3d_gl_info *gl_info)
static void wined3d_adapter_init_fb_cfgs(struct wined3d_adapter *adapter, HDC dc)
static void WINE_GLAPI position_d3dcolor(const void *data)
HRESULT CDECL wined3d_get_adapter_identifier(const struct wined3d *wined3d, UINT adapter_idx, DWORD flags, struct wined3d_adapter_identifier *identifier)
static const struct wined3d_renderer_table cards_nvidia_binary[]
static void quirk_clip_varying(struct wined3d_gl_info *gl_info)
static DWORD get_max_gl_version(const struct wined3d_gl_info *gl_info, DWORD flags)
static void WINE_GLAPI generic_ushort2n(GLuint idx, const void *data)
static const struct wined3d_vertex_pipe_ops * select_vertex_implementation(const struct wined3d_gl_info *gl_info, const struct wined3d_shader_backend_ops *shader_backend_ops)
static BOOL match_amd_r300_to_500(const struct wined3d_gl_info *gl_info, struct wined3d_caps_gl_ctx *ctx, const char *gl_renderer, enum wined3d_gl_vendor gl_vendor, enum wined3d_pci_vendor card_vendor, enum wined3d_pci_device device)
ULONG CDECL wined3d_incref(struct wined3d *wined3d)
static BOOL wined3d_check_surface_capability(const struct wined3d_format *format, BOOL no3d)
static void WINE_GLAPI specular_d3dcolor(const void *data)
static BOOL wined3d_caps_gl_ctx_create(struct wined3d_adapter *adapter, struct wined3d_caps_gl_ctx *ctx)
static const struct gpu_description * query_gpu_description(const struct wined3d_gl_info *gl_info, UINT64 *vram_bytes)
HRESULT CDECL wined3d_enum_adapter_modes(const struct wined3d *wined3d, UINT adapter_idx, enum wined3d_format_id format_id, enum wined3d_scanline_ordering scanline_ordering, UINT mode_idx, struct wined3d_display_mode *mode)
static void WINE_GLAPI generic_short2n(GLuint idx, const void *data)
HRESULT CDECL wined3d_set_adapter_display_mode(struct wined3d *wined3d, UINT adapter_idx, const struct wined3d_display_mode *mode)
static enum wined3d_gl_vendor wined3d_guess_gl_vendor(const struct wined3d_gl_info *gl_info, const char *gl_vendor_string, const char *gl_renderer, const char *gl_version)
static void STDMETHODCALLTYPE wined3d_null_wined3d_object_destroyed(void *parent)
static BOOL match_apple(const struct wined3d_gl_info *gl_info, struct wined3d_caps_gl_ctx *ctx, const char *gl_renderer, enum wined3d_gl_vendor gl_vendor, enum wined3d_pci_vendor card_vendor, enum wined3d_pci_device device)
static BOOL test_arb_vs_offset_limit(const struct wined3d_gl_info *gl_info)
static void fixup_extensions(struct wined3d_gl_info *gl_info, struct wined3d_caps_gl_ctx *ctx, const char *gl_renderer, enum wined3d_gl_vendor gl_vendor, enum wined3d_pci_vendor card_vendor, enum wined3d_pci_device device)
HRESULT CDECL wined3d_find_closest_matching_adapter_mode(const struct wined3d *wined3d, unsigned int adapter_idx, struct wined3d_display_mode *mode)
static BOOL CheckRenderTargetCapability(const struct wined3d_adapter *adapter, const struct wined3d_format *adapter_format, const struct wined3d_format *check_format, enum wined3d_gl_resource_type gl_type)
static const struct @267 card_vendor_table[]
static void parse_extension_string(struct wined3d_gl_info *gl_info, const char *extensions, const struct wined3d_extension_map *map, UINT entry_count)
const struct min_lookup minMipLookup[]
static void WINE_GLAPI generic_float16_4(GLuint idx, const void *data)
static BOOL wined3d_check_pixel_format_depth(const struct wined3d_gl_info *gl_info, const struct wined3d_pixel_format *cfg, const struct wined3d_format *format)
#define MAP_GL_FUNCTION_CAST(core_func, ext_func)
HRESULT CDECL wined3d_register_software_device(struct wined3d *wined3d, void *init_function)
static void test_pbo_functionality(struct wined3d_gl_info *gl_info)
static void quirk_broken_rgba16(struct wined3d_gl_info *gl_info)
@ DRIVER_NVIDIA_GEFORCE2MX
@ DRIVER_NVIDIA_GEFORCEFX
static enum wined3d_pci_vendor wined3d_guess_card_vendor(const char *gl_vendor_string, const char *gl_renderer)
HRESULT CDECL wined3d_get_adapter_raster_status(const struct wined3d *wined3d, UINT adapter_idx, struct wined3d_raster_status *raster_status)
static void quirk_broken_viewport_subpixel_bits(struct wined3d_gl_info *gl_info)
static void quirk_allows_specular_alpha(struct wined3d_gl_info *gl_info)
static BOOL match_fglrx(const struct wined3d_gl_info *gl_info, struct wined3d_caps_gl_ctx *ctx, const char *gl_renderer, enum wined3d_gl_vendor gl_vendor, enum wined3d_pci_vendor card_vendor, enum wined3d_pci_device device)
static const struct gl_vendor_selection nvidia_gl_vendor_table[]
@ WINED3D_D3D_LEVEL_COUNT
@ WINED3D_D3D_LEVEL_9_SM2
@ WINED3D_D3D_LEVEL_9_SM3
static BOOL match_allows_spec_alpha(const struct wined3d_gl_info *gl_info, struct wined3d_caps_gl_ctx *ctx, const char *gl_renderer, enum wined3d_gl_vendor gl_vendor, enum wined3d_pci_vendor card_vendor, enum wined3d_pci_device device)
static const struct wined3d_renderer_table cards_nvidia_mesa[]
static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter *adapter, struct wined3d_caps_gl_ctx *caps_gl_ctx, DWORD wined3d_creation_flags)
static BOOL match_r200(const struct wined3d_gl_info *gl_info, struct wined3d_caps_gl_ctx *ctx, const char *gl_renderer, enum wined3d_gl_vendor gl_vendor, enum wined3d_pci_vendor card_vendor, enum wined3d_pci_device device)
static const struct fragment_pipeline * select_fragment_implementation(const struct wined3d_gl_info *gl_info, const struct wined3d_shader_backend_ops *shader_backend_ops)
static enum wined3d_pci_device card_fallback_amd[]
static void WINE_GLAPI invalid_texcoord_func(GLenum unit, const void *data)
static const struct wined3d_renderer_table cards_amd_binary[]
static BOOL match_not_dx10_capable(const struct wined3d_gl_info *gl_info, struct wined3d_caps_gl_ctx *ctx, const char *gl_renderer, enum wined3d_gl_vendor gl_vendor, enum wined3d_pci_vendor card_vendor, enum wined3d_pci_device device)
static const struct gpu_description gpu_description_table[]
static void WINE_GLAPI warn_no_specular_func(const void *data)
static BOOL CheckDepthStencilCapability(const struct wined3d_adapter *adapter, const struct wined3d_format *display_format, const struct wined3d_format *ds_format, enum wined3d_gl_resource_type gl_type)
static enum wined3d_pci_device card_fallback_intel[]
static const GUID IID_D3DDEVICE_D3DUID
const struct wined3d_parent_ops wined3d_null_parent_ops
HRESULT CDECL wined3d_get_adapter_display_mode(const struct wined3d *wined3d, UINT adapter_idx, struct wined3d_display_mode *mode, enum wined3d_display_rotation *rotation)
static void quirk_infolog_spam(struct wined3d_gl_info *gl_info)
static BOOL match_apple_intel(const struct wined3d_gl_info *gl_info, struct wined3d_caps_gl_ctx *ctx, const char *gl_renderer, enum wined3d_gl_vendor gl_vendor, enum wined3d_pci_vendor card_vendor, enum wined3d_pci_device device)
static void enumerate_gl_extensions(struct wined3d_gl_info *gl_info, const struct wined3d_extension_map *map, unsigned int map_entries_count)
static void quirk_no_np2(struct wined3d_gl_info *gl_info)
HRESULT wined3d_init(struct wined3d *wined3d, DWORD flags)
HRESULT CDECL wined3d_check_depth_stencil_match(const struct wined3d *wined3d, UINT adapter_idx, enum wined3d_device_type device_type, enum wined3d_format_id adapter_format_id, enum wined3d_format_id render_target_format_id, enum wined3d_format_id depth_stencil_format_id)
static BOOL wined3d_caps_gl_ctx_create_attribs(struct wined3d_caps_gl_ctx *caps_gl_ctx, struct wined3d_gl_info *gl_info)
static const struct wined3d_shader_backend_ops * select_shader_backend(const struct wined3d_gl_info *gl_info)
enum wined3d_pci_device * card_fallback
static const struct wined3d_renderer_table cards_amd_mesa[]
static void quirk_broken_arb_fog(struct wined3d_gl_info *gl_info)
static void quirk_texcoord_w(struct wined3d_gl_info *gl_info)
static void quirk_apple_glsl_constants(struct wined3d_gl_info *gl_info)
static void quirk_r200_constants(struct wined3d_gl_info *gl_info)
UINT64 adapter_adjust_memory(struct wined3d_adapter *adapter, INT64 amount)
static const struct wined3d_extension_map wgl_extension_map[]
static void wined3d_adapter_init_ffp_attrib_ops(struct wined3d_adapter *adapter)
static BOOL wined3d_check_pixel_format_color(const struct wined3d_gl_info *gl_info, const struct wined3d_pixel_format *cfg, const struct wined3d_format *format)
static DWORD wined3d_parse_gl_version(const char *gl_version)
static const struct gl_vendor_selection amd_gl_vendor_table[]
static BOOL wined3d_adapter_init_nogl(struct wined3d_adapter *adapter, UINT ordinal)
static enum wined3d_d3d_level d3d_level_from_caps(const struct shader_caps *shader_caps, const struct fragment_caps *fragment_caps, DWORD glsl_version)
unsigned int gl_vendor_count
HRESULT CDECL wined3d_get_device_caps(const struct wined3d *wined3d, UINT adapter_idx, enum wined3d_device_type device_type, WINED3DCAPS *caps)
HRESULT CDECL wined3d_check_device_multisample_type(const struct wined3d *wined3d, UINT adapter_idx, enum wined3d_device_type device_type, enum wined3d_format_id surface_format_id, BOOL windowed, enum wined3d_multisample_type multisample_type, DWORD *quality_levels)
static void quirk_amd_dx9(struct wined3d_gl_info *gl_info)
static const struct wined3d_renderer_table cards_vmware[]
static enum wined3d_pci_device select_card_handler(const struct gl_vendor_selection *table, unsigned int table_size, enum wined3d_gl_vendor gl_vendor, const char *gl_renderer)
static BOOL match_broken_viewport_subpixel_bits(const struct wined3d_gl_info *gl_info, struct wined3d_caps_gl_ctx *ctx, const char *gl_renderer, enum wined3d_gl_vendor gl_vendor, enum wined3d_pci_vendor card_vendor, enum wined3d_pci_device device)
static BOOL has_extension(const char *list, const char *ext)
static BOOL match_fbo_tex_update(const struct wined3d_gl_info *gl_info, struct wined3d_caps_gl_ctx *ctx, const char *gl_renderer, enum wined3d_gl_vendor gl_vendor, enum wined3d_pci_vendor card_vendor, enum wined3d_pci_device device)
static const struct gpu_description * get_gpu_description(enum wined3d_pci_vendor vendor, enum wined3d_pci_device device)
static void init_driver_info(struct wined3d_driver_info *driver_info, const struct gpu_description *gpu_desc, UINT64 vram_bytes)
static void WINE_GLAPI invalid_generic_attrib_func(GLuint idx, const void *data)
static void WINE_GLAPI position_float4(const void *data)
#define WINED3DPS20_MAX_DYNAMICFLOWCONTROLDEPTH
#define WINED3DSTENCILCAPS_ZERO
#define WINED3DPMISCCAPS_MASKZ
#define WINED3DPTEXTURECAPS_MIPCUBEMAP
#define WINED3DPMISCCAPS_CULLCW
#define WINED3DPSHADECAPS_FOGGOURAUD
#define WINED3DPMISCCAPS_POSTBLENDSRGBCONVERT
#define WINED3DSTENCILCAPS_KEEP
#define WINEDDCAPS_BLTSTRETCH
#define WINED3DPRASTERCAPS_ANISOTROPY
#define WINED3DPTADDRESSCAPS_WRAP
#define WINED3DENUM_NO_WHQL_LEVEL
#define WINED3DPRASTERCAPS_FOGVERTEX
#define WINEDDSCAPS_PRIMARYSURFACE
#define WINED3DPTEXTURECAPS_NONPOW2CONDITIONAL
#define WINED3DVS20_MAX_DYNAMICFLOWCONTROLDEPTH
#define WINED3DUSAGE_QUERY_LEGACYBUMPMAP
#define WINED3DPBLENDCAPS_INVSRCALPHA
#define WINED3DPRASTERCAPS_FOGTABLE
#define WINEDDCAPS_COLORKEY
@ WINED3D_MULTISAMPLE_NON_MASKABLE
@ WINED3D_MULTISAMPLE_16_SAMPLES
@ WINED3D_MULTISAMPLE_NONE
#define WINED3DPCMPCAPS_LESSEQUAL
#define WINED3DPBLENDCAPS_INVDESTCOLOR
#define WINED3DDEVCAPS_TEXTURESYSTEMMEMORY
#define WINED3DDEVCAPS_TEXTUREVIDEOMEMORY
#define WINED3DDEVCAPS_DRAWPRIMITIVES2
#define WINED3DPCMPCAPS_NEVER
#define WINED3DCAPS2_DYNAMICTEXTURES
#define WINED3DPRASTERCAPS_WFOG
#define WINED3DDEVCAPS_PUREDEVICE
#define WINED3DPSHADECAPS_COLORFLATRGB
#define WINED3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING
#define WINED3DSTENCILCAPS_DECR
#define WINEDDCKEYCAPS_DESTBLT
#define WINEDDSCAPS_ZBUFFER
#define WINED3DPTFILTERCAPS_LINEARMIPNEAREST
#define WINED3DVS20CAPS_PREDICATION
#define WINEDDFXCAPS_BLTROTATION90
#define WINEDDSCAPS_VIDEOMEMORY
#define WINED3DPMISCCAPS_INDEPENDENTWRITEMASKS
#define WINED3DPS20_MAX_NUMINSTRUCTIONSLOTS
#define WINED3DPS20_MAX_STATICFLOWCONTROLDEPTH
#define WINED3DPTFILTERCAPS_MAGFLINEAR
#define WINED3DPRESENT_INTERVAL_ONE
#define WINED3DPTEXTURECAPS_CUBEMAP_POW2
#define WINED3DPTADDRESSCAPS_INDEPENDENTUV
#define WINED3DPTFILTERCAPS_MIPNEAREST
#define WINED3DUSAGE_LEGACY_CUBEMAP
#define WINED3DPTEXTURECAPS_MIPVOLUMEMAP
#define WINED3DLINECAPS_BLEND
#define WINED3DCAPS2_CANRENDERWINDOWED
#define WINED3DPBLENDCAPS_ZERO
#define WINED3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD
#define WINED3DPTADDRESSCAPS_CLAMP
@ WINED3D_RTYPE_TEXTURE_2D
@ WINED3D_RTYPE_TEXTURE_1D
@ WINED3D_RTYPE_TEXTURE_3D
#define WINEDDFXCAPS_BLTSTRETCHX
#define WINED3DPBLENDCAPS_SRCALPHASAT
#define WINEDDFXCAPS_BLTSHRINKYN
#define WINED3DCAPS2_CANGENMIPMAP
#define WINED3DDEVCAPS_TLVERTEXSYSTEMMEMORY
#define WINED3DCAPS2_FULLSCREENGAMMA
#define WINED3DPRASTERCAPS_MIPMAPLODBIAS
#define WINED3DPSHADECAPS_ALPHAGOURAUDBLEND
#define WINED3DSTENCILCAPS_REPLACE
#define WINEDDSCAPS_OFFSCREENPLAIN
#define WINED3DSTENCILCAPS_INCRSAT
#define WINED3DPTFILTERCAPS_MINFANISOTROPIC
#define WINED3DPTEXTURECAPS_VOLUMEMAP
#define WINED3DPRASTERCAPS_ZTEST
#define WINED3DPTFILTERCAPS_MIPFLINEAR
#define WINED3DPTEXTURECAPS_ALPHA
#define WINED3DPMISCCAPS_CULLNONE
#define WINED3DERR_NOTAVAILABLE
#define WINED3DPS20CAPS_PREDICATION
#define WINED3DPTEXTURECAPS_POW2
#define WINED3DPMISCCAPS_SEPARATEALPHABLEND
#define WINED3DDEVCAPS_DRAWPRIMTLVERTEX
#define WINED3DUSAGE_QUERY_SRGBREAD
#define WINED3DPS20_MIN_STATICFLOWCONTROLDEPTH
#define WINEDDFXCAPS_BLTSTRETCHYN
#define WINED3DLINECAPS_ZTEST
#define WINED3DPTEXTURECAPS_BORDER
#define WINED3DPMISCCAPS_CULLCCW
#define WINED3DDTCAPS_SHORT4N
#define WINED3DVS20_MIN_DYNAMICFLOWCONTROLDEPTH
#define WINEDDSCAPS_PALETTE
#define WINEDDCAPS_BLTDEPTHFILL
#define WINEDDCAPS_CANCLIP
#define WINED3DLINECAPS_FOG
#define WINED3DPSHADECAPS_SPECULARFLATRGB
#define WINED3DUSAGE_QUERY_FILTER
#define WINEDDSCAPS_VISIBLE
#define WINED3DPRASTERCAPS_ZFOG
#define WINED3DSTENCILCAPS_DECRSAT
#define WINED3DDTCAPS_FLOAT16_2
#define WINED3DPTADDRESSCAPS_MIRRORONCE
#define WINEDDCAPS_COLORKEYHWASSIST
#define WINED3DPBLENDCAPS_SRCCOLOR
#define WINED3DDEVCAPS_FLOATTLVERTEX
#define WINEDDCAPS_BLTCOLORFILL
#define WINED3DPRASTERCAPS_SUBPIXEL
#define WINED3DDEVCAPS_EXECUTESYSTEMMEMORY
#define WINED3DPTEXTURECAPS_TRANSPARENCY
#define WINED3DPRASTERCAPS_STIPPLE
@ WINED3D_TADDRESS_BORDER
@ WINED3D_TADDRESS_MIRROR_ONCE
@ WINED3D_TADDRESS_MIRROR
#define WINED3DPS20CAPS_ARBITRARYSWIZZLE
#define WINED3DPCMPCAPS_LESS
#define WINED3DPSHADECAPS_SPECULARGOURAUDRGB
#define WINED3DPSHADECAPS_COLORGOURAUDRGB
#define WINED3DPTFILTERCAPS_LINEARMIPLINEAR
#define WINED3DUSAGE_QUERY_WRAPANDMIP
@ WINED3DFMT_B2G3R3_UNORM
@ WINED3DFMT_B4G4R4A4_UNORM
@ WINED3DFMT_R16G16_UNORM
@ WINED3DFMT_R10G10B10A2_UNORM
@ WINED3DFMT_B8G8R8A8_UNORM
@ WINED3DFMT_D16_LOCKABLE
@ WINED3DFMT_S1_UINT_D15_UNORM
@ WINED3DFMT_B2G3R3A8_UNORM
@ WINED3DFMT_B8G8R8X8_UNORM
@ WINED3DFMT_R8G8B8X8_UNORM
@ WINED3DFMT_B5G5R5X1_UNORM
@ WINED3DFMT_B10G10R10A2_UNORM
@ WINED3DFMT_B8G8R8_UNORM
@ WINED3DFMT_B5G5R5A1_UNORM
@ WINED3DFMT_R8G8B8A8_UNORM
@ WINED3DFMT_R16G16B16A16_UNORM
@ WINED3DFMT_B5G6R5_UNORM
@ WINED3DFMT_S4X4_UINT_D24_UNORM
@ WINED3DFMT_B4G4R4X4_UNORM
#define WINEDDSCAPS_TEXTURE
#define WINEDDCAPS2_CERTIFIED
#define WINED3DPTEXTURECAPS_MIPMAP
#define WINED3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING
#define WINED3DPBLENDCAPS_DESTCOLOR
#define WINEDDCAPS2_NOPAGELOCKREQUIRED
#define WINED3DDEVCAPS_HWRASTERIZATION
#define WINEDDFXCAPS_BLTSHRINKXN
#define WINED3DPRASTERCAPS_PAT
#define WINEDDFXCAPS_BLTMIRRORUPDOWN
#define WINED3DPTADDRESSCAPS_BORDER
#define WINEDDFXCAPS_BLTSTRETCHXN
#define WINED3DPSHADECAPS_ALPHAFLATBLEND
#define WINED3DPBLENDCAPS_ONE
#define WINED3DDTCAPS_FLOAT16_4
#define WINEDDSCAPS_ALPHA
#define WINED3DCAPS3_COPY_TO_VIDMEM
#define WINED3D_PRESENT_CONVERSION
#define WINED3DPRASTERCAPS_ZBIAS
#define WINED3DPTADDRESSCAPS_MIRROR
#define WINED3DPTFILTERCAPS_NEAREST
#define WINEDDCAPS_PALETTE
#define WINED3DPRASTERCAPS_DEPTHBIAS
#define WINEDDCAPS_CANBLTSYSMEM
#define WINED3DPTFILTERCAPS_MAGFPOINT
#define WINEDDCAPS_CANCLIPSTRETCHED
#define WINED3DMIN30SHADERINSTRUCTIONS
#define WINED3DDEVCAPS_CANRENDERAFTERFLIP
#define WINED3DPRASTERCAPS_SLOPESCALEDEPTHBIAS
#define WINED3DPTFILTERCAPS_LINEAR
#define WINED3DPS20CAPS_GRADIENTINSTRUCTIONS
#define WINED3DPRASTERCAPS_DITHER
#define WINED3DPTFILTERCAPS_MAGFANISOTROPIC
wined3d_scanline_ordering
@ WINED3D_SCANLINE_ORDERING_UNKNOWN
@ WINED3D_SCANLINE_ORDERING_INTERLACED
@ WINED3D_SCANLINE_ORDERING_PROGRESSIVE
#define WINEDDSCAPS_FRONTBUFFER
#define WINED3DPTEXTURECAPS_PERSPECTIVE
#define WINED3DCURSORCAPS_COLOR
#define WINEDDFXCAPS_BLTSHRINKX
#define WINED3DDTCAPS_UBYTE4N
#define WINED3DPBLENDCAPS_BOTHINVSRCALPHA
#define WINED3DPS20CAPS_NOTEXINSTRUCTIONLIMIT
#define WINED3DCURSORCAPS_LOWRES
#define WINED3DPMISCCAPS_BLENDOP
#define WINED3DPS20_MIN_NUMINSTRUCTIONSLOTS
#define WINED3DSTENCILCAPS_INVERT
#define WINED3DUSAGE_RENDERTARGET
#define WINED3DPTFILTERCAPS_MIPLINEAR
#define WINEDDCAPS2_CANRENDERWINDOWED
#define WINED3DPMISCCAPS_CLIPPLANESCALEDPOINTS
#define WINED3DPTEXTURECAPS_PROJECTED
#define WINED3DPCMPCAPS_GREATEREQUAL
#define WINED3DDTCAPS_SHORT2N
@ WINED3D_DISPLAY_ROTATION_270
@ WINED3D_DISPLAY_ROTATION_0
@ WINED3D_DISPLAY_ROTATION_180
@ WINED3D_DISPLAY_ROTATION_UNSPECIFIED
@ WINED3D_DISPLAY_ROTATION_90
#define WINED3DPTFILTERCAPS_MINFPOINT
#define WINED3DUSAGE_QUERY_VERTEXTEXTURE
#define WINED3DPTEXTURECAPS_VOLUMEMAP_POW2
#define WINED3DPBLENDCAPS_INVSRCCOLOR
#define WINED3DUSAGE_QUERY_GENMIPMAP
#define WINEDDCAPS2_PRIMARYGAMMA
#define WINED3DPCMPCAPS_EQUAL
#define WINED3DPBLENDCAPS_BLENDFACTOR
#define WINED3DPMISCCAPS_COLORWRITEENABLE
#define WINEDDFXCAPS_BLTSHRINKY
#define WINED3DPCMPCAPS_NOTEQUAL
#define WINED3DSTENCILCAPS_INCR
#define WINEDDSCAPS_SYSTEMMEMORY
#define WINED3DUSAGE_DYNAMIC
#define WINED3DPTEXTURECAPS_CUBEMAP
#define WINED3DLINECAPS_TEXTURE
#define WINED3DPBLENDCAPS_SRCALPHA
#define WINED3DPRESENT_INTERVAL_IMMEDIATE
#define WINED3DDEVCAPS2_STREAMOFFSET
#define WINED3DDEVCAPS_DRAWPRIMITIVES2EX
#define WINED3DERR_INVALIDCALL
#define WINEDDFXCAPS_BLTSTRETCHY
#define WINED3DUSAGE_QUERY_SRGBWRITE
#define WINED3DPBLENDCAPS_DESTALPHA
#define WINED3DPRASTERCAPS_SCISSORTEST
#define WINED3DPTFILTERCAPS_MIPFPOINT
#define WINED3DCAPS3_COPY_TO_SYSTEMMEM
#define WINED3DPS20CAPS_NODEPENDENTREADLIMIT
#define WINED3DPCMPCAPS_GREATER
@ WINED3D_DEVICE_TYPE_HAL
@ WINED3D_DEVICE_TYPE_REF
#define WINED3D_PIXEL_CENTER_INTEGER
#define WINEDDCKEYCAPS_SRCBLT
#define WINED3DTEXOPCAPS_DOTPRODUCT3
#define WINEDDFXCAPS_BLTALPHA
#define WINED3DPBLENDCAPS_INVDESTALPHA
#define WINED3D_REQUEST_D3D10
#define WINEDDCAPS2_WIDESURFACES
#define WINED3DPTFILTERCAPS_MINFLINEAR
#define WINED3DUSAGE_TEXTURE
#define WINEDDSCAPS_3DDEVICE
#define WINED3DPTEXTURECAPS_ALPHAPALETTE
#define WINED3DPBLENDCAPS_BOTHSRCALPHA
#define WINEDDSCAPS_MIPMAP
#define WINEDDSCAPS_BACKBUFFER
#define WINED3DOK_NOMIPGEN
#define WINED3DDEVCAPS_EXECUTEVIDEOMEMORY
#define WINEDDFXCAPS_BLTMIRRORLEFTRIGHT
#define WINED3DPMISCCAPS_CLIPTLVERTS
#define WINED3DDTCAPS_UBYTE4
#define WINED3DUSAGE_SOFTWAREPROCESSING
#define WINED3DVS20_MAX_STATICFLOWCONTROLDEPTH
#define WINED3DDEVCAPS_TLVERTEXVIDEOMEMORY
#define WINED3DDEVCAPS_HWTRANSFORMANDLIGHT
#define WINED3DLINECAPS_ALPHACMP
#define WINED3DUSAGE_DEPTHSTENCIL
#define WINED3DPSHADECAPS_FOGFLAT
#define WINED3DPCMPCAPS_ALWAYS
#define WINED3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET
#define WINED3DSTENCILCAPS_TWOSIDED
@ EXT_BLEND_EQUATION_SEPARATE
@ ARB_EXPLICIT_ATTRIB_LOCATION
@ ARB_SHADING_LANGUAGE_PACKING
@ ARB_TEXTURE_QUERY_LEVELS
@ ARB_TEXTURE_FILTER_ANISOTROPIC
@ ARB_TEXTURE_BUFFER_OBJECT
@ ARB_INTERNALFORMAT_QUERY
@ ARB_PIPELINE_STATISTICS_QUERY
@ ARB_SHADER_BIT_ENCODING
@ EXT_TEXTURE_SHARED_EXPONENT
@ ARB_DRAW_ELEMENTS_BASE_VERTEX
@ WINED3D_GL_PRIMITIVE_QUERY
@ ARB_FRAGMENT_LAYER_VIEWPORT
@ WINED3D_GL_BLEND_EQUATION
@ WGL_WINE_QUERY_RENDERER
@ APPLE_FLUSH_BUFFER_RANGE
@ ARB_SHADER_STORAGE_BUFFER_OBJECT
@ ARB_TEXTURE_ENV_COMBINE
@ WGL_WINE_PIXEL_FORMAT_PASSTHROUGH
@ ATI_TEXTURE_COMPRESSION_3DC
@ ARB_TEXTURE_COMPRESSION_RGTC
@ ARB_TEXTURE_MIRRORED_REPEAT
@ EXT_TEXTURE_SRGB_DECODE
@ ARB_VERTEX_BUFFER_OBJECT
@ ARB_TEXTURE_BORDER_CLAMP
@ ARB_TEXTURE_MULTISAMPLE
@ ARB_INTERNALFORMAT_QUERY2
@ EXT_BLEND_FUNC_SEPARATE
@ NV_TEXTURE_ENV_COMBINE4
@ ARB_MAP_BUFFER_ALIGNMENT
@ ARB_FRAGMENT_COORD_CONVENTIONS
@ ARB_UNIFORM_BUFFER_OBJECT
@ WINED3D_GL_NORMALIZED_TEXRECT
@ ARB_CLEAR_BUFFER_OBJECT
@ EXT_PACKED_DEPTH_STENCIL
@ ATI_TEXTURE_ENV_COMBINE3
@ NV_FRAGMENT_PROGRAM_OPTION
@ ARB_FRAMEBUFFER_NO_ATTACHMENTS
@ ARB_SHADING_LANGUAGE_100
@ EXT_TEXTURE_COMPRESSION_RGTC
@ EXT_TEXTURE_MIRROR_CLAMP
@ ARB_BLEND_FUNC_EXTENDED
@ ARB_SHADER_ATOMIC_COUNTERS
@ EXT_FRAMEBUFFER_MULTISAMPLE
@ ARB_TEXTURE_MIRROR_CLAMP_TO_EDGE
@ ARB_SHADING_LANGUAGE_420PACK
@ ARB_TESSELLATION_SHADER
@ ATI_TEXTURE_MIRROR_ONCE
@ ARB_VERTEX_TYPE_2_10_10_10_REV
@ ARB_TRANSFORM_FEEDBACK3
@ ARB_TEXTURE_NON_POWER_OF_TWO
@ WINED3D_GL_LEGACY_CONTEXT
@ NV_VERTEX_PROGRAM2_OPTION
@ EXT_GPU_PROGRAM_PARAMETERS
@ ARB_SHADER_IMAGE_LOAD_STORE
@ ARB_TEXTURE_COMPRESSION_BPTC
@ ARB_TEXTURE_COMPRESSION
@ EXT_TEXTURE_COMPRESSION_S3TC
@ ARB_TEXTURE_BUFFER_RANGE
@ ARB_PIXEL_BUFFER_OBJECT
@ ARB_TRANSFORM_FEEDBACK2
@ ARB_TEXTURE_STORAGE_MULTISAMPLE
@ EXT_POLYGON_OFFSET_CLAMP
@ EXT_TEXTURE_ENV_COMBINE
@ ARB_TEXTURE_CUBE_MAP_ARRAY
#define WINED3D_OPENGL_WINDOW_CLASS_NAME
#define WINED3D_QUIRK_NV_CLIP_BROKEN
#define WINED3D_FRAGMENT_CAP_COLOR_KEY
#define WINED3DFMT_FLAG_BUMPMAP
void(WINE_GLAPI * wined3d_ffp_texcoord_func)(GLenum unit, const void *data)
@ WINED3D_FFP_EMIT_D3DCOLOR
@ WINED3D_FFP_EMIT_FLOAT16_2
@ WINED3D_FFP_EMIT_UBYTE4N
@ WINED3D_FFP_EMIT_FLOAT2
@ WINED3D_FFP_EMIT_SHORT4N
@ WINED3D_FFP_EMIT_USHORT2N
@ WINED3D_FFP_EMIT_SHORT2N
@ WINED3D_FFP_EMIT_UBYTE4
@ WINED3D_FFP_EMIT_FLOAT4
@ WINED3D_FFP_EMIT_FLOAT3
@ WINED3D_FFP_EMIT_FLOAT16_4
@ WINED3D_FFP_EMIT_USHORT4N
@ WINED3D_FFP_EMIT_SHORT2
@ WINED3D_FFP_EMIT_SHORT4
@ WINED3D_FFP_EMIT_FLOAT1
#define WINED3D_SHADER_CAP_DOUBLE_PRECISION
#define MAKEDWORD_VERSION(maj, min)
#define WINED3DFMT_FLAG_SHADOW
#define WINED3DFMT_FLAG_SRGB_WRITE
#define WINED3DFMT_FLAG_RENDERTARGET
#define WINED3DFMT_FLAG_VTF
#define MAX_UNORDERED_ACCESS_VIEWS
#define WINED3D_QUIRK_BROKEN_ARB_FOG
#define MAX_GL_FRAGMENT_SAMPLERS
#define WINED3D_QUIRK_ALLOWS_SPECULAR_ALPHA
#define WINED3D_QUIRK_LIMITED_TEX_FILTERING
#define WINED3DFMT_FLAG_SRGB_READ
#define MAX_RENDER_TARGET_VIEWS
void(WINE_GLAPI * wined3d_ffp_attrib_func)(const void *data)
#define GL_EXT_EMUL_EXT_FOG_COORD
#define GL_EXT_EMUL_ARB_MULTITEXTURE
#define WINED3D_QUIRK_INFO_LOG_SPAM
@ WINED3D_GL_RES_TYPE_TEX_3D
@ WINED3D_GL_RES_TYPE_TEX_CUBE
@ WINED3D_GL_RES_TYPE_BUFFER
@ WINED3D_GL_RES_TYPE_TEX_2D
@ WINED3D_GL_RES_TYPE_TEX_1D
#define WINED3DFMT_FLAG_TEXTURE
#define WINED3D_QUIRK_BROKEN_RGBA16
#define WINED3D_QUIRK_FBO_TEX_UPDATE
@ WINED3D_SHADER_TYPE_HULL
@ WINED3D_SHADER_TYPE_PIXEL
@ WINED3D_SHADER_TYPE_GEOMETRY
@ WINED3D_SHADER_TYPE_GRAPHICS_COUNT
@ WINED3D_SHADER_TYPE_DOMAIN
@ WINED3D_SHADER_TYPE_COMPUTE
@ WINED3D_SHADER_TYPE_VERTEX
@ WINED3D_SHADER_TYPE_COUNT
#define WINED3DFMT_FLAG_FLOAT
#define WINED3D_QUIRK_GLSL_CLIP_VARYING
#define WINED3D_QUIRK_SET_TEXCOORD_W
#define WINED3D_SHADER_CAP_VS_CLIPPING
#define WINED3D_QUIRK_ARB_VS_OFFSET_LIMIT
#define MAX_CLIP_DISTANCES
#define WINED3DFMT_FLAG_STENCIL
#define WINED3DFMT_FLAG_EXTENSION
#define WINED3DFMT_FLAG_FILTERING
#define WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
#define WINED3DFMT_FLAG_DEPTH
void(WINE_GLAPI * wined3d_generic_attrib_func)(GLuint idx, const void *data)
@ CARD_NVIDIA_GEFORCE_GTX780
@ CARD_NVIDIA_GEFORCE_GTX950M
@ CARD_NVIDIA_GEFORCE_GT325M
@ CARD_NVIDIA_GEFORCE_GTXTITANZ
@ CARD_NVIDIA_GEFORCE_GTX570
@ CARD_NVIDIA_GEFORCE_GTXTITAN
@ CARD_NVIDIA_GEFORCE_GTX560TI
@ CARD_NVIDIA_GEFORCE_GTX1080TI
@ CARD_NVIDIA_GEFORCE_GTS250
@ CARD_NVIDIA_GEFORCE_6800
@ CARD_NVIDIA_GEFORCE_GT610
@ CARD_NVIDIA_GEFORCE_GT420
@ CARD_NVIDIA_GEFORCEFX_5600
@ CARD_NVIDIA_GEFORCE_GTX1080
@ CARD_NVIDIA_GEFORCE_9600GT
@ CARD_NVIDIA_GEFORCE_GT640M
@ CARD_NVIDIA_GEFORCE_940M
@ CARD_NVIDIA_GEFORCE_320M
@ CARD_NVIDIA_GEFORCE_GT650M
@ CARD_NVIDIA_GEFORCE_GTX460
@ CARD_NVIDIA_GEFORCE_830M
@ CARD_NVIDIA_GEFORCE_7300
@ CARD_NVIDIA_GEFORCEFX_5200
@ CARD_NVIDIA_GEFORCE_GT330
@ CARD_NVIDIA_GEFORCE_7600
@ CARD_NVIDIA_GEFORCE_GT320M
@ CARD_NVIDIA_GEFORCE_820M
@ CARD_NVIDIA_GEFORCE_GTX280
@ CARD_NVIDIA_GEFORCE_6600GT
@ CARD_NVIDIA_GEFORCE_GT425M
@ CARD_NVIDIA_GEFORCE_GTX275
@ CARD_AMD_RADEON_XPRESS_200M
@ CARD_NVIDIA_GEFORCE_GT440
@ CARD_NVIDIA_GEFORCE_7400
@ CARD_NVIDIA_GEFORCE_GTX560
@ CARD_NVIDIA_GEFORCE_GTX650TI
@ CARD_NVIDIA_GEFORCE_845M
@ CARD_NVIDIA_GEFORCE_840M
@ CARD_NVIDIA_GEFORCE_8800GTX
@ CARD_NVIDIA_GEFORCE_9700MGT
@ CARD_NVIDIA_GEFORCE_GT730
@ CARD_NVIDIA_GEFORCE_GTX580
@ CARD_NVIDIA_GEFORCE_GTX1060
@ CARD_NVIDIA_GEFORCE_GTX1070
@ CARD_NVIDIA_GEFORCE_GTX950
@ CARD_NVIDIA_GEFORCE_GTX690
@ CARD_NVIDIA_GEFORCE_GTX780TI
@ CARD_NVIDIA_GEFORCE_GTX770
@ CARD_NVIDIA_GEFORCE_GTX760
@ CARD_NVIDIA_GEFORCE_GTX880M
@ CARD_NVIDIA_GEFORCE4_TI4200
@ CARD_AMD_RADEON_HD4200M
@ CARD_NVIDIA_GEFORCE_GT430
@ CARD_NVIDIA_GEFORCE_GTX750TI
@ CARD_NVIDIA_GEFORCE_8300GS
@ CARD_NVIDIA_GEFORCE_GTX465
@ CARD_NVIDIA_GEFORCE_GT240
@ CARD_NVIDIA_TITANX_PASCAL
@ CARD_AMD_RADEON_HD6550D
@ CARD_NVIDIA_GEFORCE_GT520
@ CARD_NVIDIA_GEFORCE_GT730M
@ CARD_NVIDIA_GEFORCE_8800GTS
@ CARD_NVIDIA_GEFORCE_8400GS
@ CARD_NVIDIA_GEFORCE_8200
@ CARD_AMD_RADEON_HD6600M
@ CARD_NVIDIA_GEFORCE_GTX480
@ CARD_NVIDIA_GEFORCE_GTX550
@ CARD_NVIDIA_GEFORCE_9400M
@ CARD_NVIDIA_GEFORCE_GTX960
@ CARD_NVIDIA_GEFORCE_GTX680
@ CARD_NVIDIA_GEFORCE_8600MGT
@ CARD_NVIDIA_GEFORCE_GTX650
@ CARD_NVIDIA_GEFORCE_GT555M
@ CARD_NVIDIA_GEFORCE_GTS350M
@ CARD_AMD_RADEON_HD7660D
@ CARD_NVIDIA_GEFORCE_GTX870M
@ CARD_NVIDIA_GEFORCE_9400GT
@ CARD_NVIDIA_GEFORCE_GTX850M
@ CARD_NVIDIA_GEFORCE_7800GT
@ CARD_NVIDIA_GEFORCE_GTX670
@ CARD_NVIDIA_GEFORCE_GTX765M
@ CARD_AMD_RADEON_R9_FURY
@ CARD_NVIDIA_GEFORCE_210
@ CARD_NVIDIA_GEFORCE_GTX660M
@ CARD_NVIDIA_GEFORCE_GTX460M
@ CARD_NVIDIA_GEFORCE_9800GT
@ CARD_NVIDIA_GEFORCE_6200
@ CARD_NVIDIA_GEFORCE_9300
@ CARD_NVIDIA_GEFORCE_GT525M
@ CARD_NVIDIA_GEFORCE_GTX760TI
@ CARD_NVIDIA_GEFORCE_GTX260
@ CARD_NVIDIA_GEFORCE_GTX980
@ CARD_NVIDIA_GEFORCE_8600GT
@ CARD_NVIDIA_GEFORCE_GTX970M
@ CARD_NVIDIA_GEFORCE_GTX560M
@ CARD_NVIDIA_GEFORCE_315M
@ CARD_NVIDIA_GEFORCE_GT630
@ CARD_NVIDIA_GEFORCE_GT220
@ CARD_NVIDIA_GEFORCE_GTX750
@ CARD_NVIDIA_GEFORCE_GTX770M
@ CARD_NVIDIA_GEFORCE_GTXTITANX
@ CARD_NVIDIA_GEFORCEFX_5800
@ CARD_NVIDIA_GEFORCE_GTX1050
@ CARD_AMD_RADEON_HD8600M
@ CARD_NVIDIA_GEFORCE_GTXTITANB
@ CARD_NVIDIA_GEFORCE4_MX
@ CARD_NVIDIA_GEFORCE_GTX960M
@ CARD_NVIDIA_GEFORCE_GTX970
@ CARD_NVIDIA_GEFORCE_GT630M
@ CARD_NVIDIA_GEFORCE_GT740M
@ CARD_NVIDIA_GEFORCE_GTX675MX
@ CARD_NVIDIA_GEFORCE_GT540M
@ CARD_NVIDIA_GEFORCE_GTX660
@ CARD_NVIDIA_GEFORCE2_MX
@ CARD_NVIDIA_GEFORCE_GTX470
@ CARD_NVIDIA_GEFORCE_8500GT
@ CARD_NVIDIA_GEFORCE_GTX980TI
@ CARD_NVIDIA_GEFORCE_410M
@ CARD_NVIDIA_GEFORCE_GTS450
@ CARD_NVIDIA_GEFORCE_GT750M
@ CARD_AMD_RADEON_HD6480G
@ CARD_NVIDIA_GEFORCE_GTX660TI
@ CARD_NVIDIA_GEFORCE_9500GT
@ CARD_NVIDIA_GEFORCE_GTX670MX
@ CARD_NVIDIA_GEFORCE_GTX860M
@ CARD_NVIDIA_GEFORCE_9200
@ CARD_AMD_RADEON_HD6410D
static unsigned int wined3d_popcount(unsigned int x)
#define WINED3DFMT_FLAG_GEN_MIPMAP
#define DM_DISPLAYFREQUENCY
int WINAPI ChoosePixelFormat(_In_ HDC hdc, _In_ const PIXELFORMATDESCRIPTOR *ppfd)
BOOL WINAPI SetPixelFormat(_In_ HDC, _In_ int, _In_ const PIXELFORMATDESCRIPTOR *)
#define PFD_SUPPORT_OPENGL
int WINAPI DescribePixelFormat(_In_ HDC hdc, _In_ int iPixelFormat, _In_ UINT nBytes, _Out_writes_bytes_opt_(nBytes) LPPIXELFORMATDESCRIPTOR ppfd)
#define PFD_GENERIC_FORMAT
#define PFD_DRAW_TO_WINDOW
#define PFD_GENERIC_ACCELERATED
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
#define CreateWindowA(a, b, c, d, e, f, g, h, i, j, k)
BOOL WINAPI ClipCursor(_In_opt_ LPCRECT)
#define DISP_CHANGE_SUCCESSFUL
#define ENUM_REGISTRY_SETTINGS
#define ENUM_CURRENT_SETTINGS
HDC WINAPI GetDC(_In_opt_ HWND)
BOOL WINAPI OffsetRect(_Inout_ LPRECT, _In_ int, _In_ int)
BOOL WINAPI DestroyWindow(_In_ HWND)
BOOL WINAPI SetRect(_Out_ LPRECT, _In_ int, _In_ int, _In_ int, _In_ int)