ReactOS 0.4.17-dev-966-gf06eace
d3d8_private.h File Reference
#include <assert.h>
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "wingdi.h"
#include "wine/debug.h"
#include "d3d8.h"
#include "wine/wined3d.h"
Include dependency graph for d3d8_private.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  d3d8
 
struct  d3d8_handle_entry
 
struct  d3d8_handle_table
 
struct  FvfToDecl
 
struct  d3d8_device
 
struct  d3d8_resource
 
struct  d3d8_volume
 
struct  d3d8_swapchain
 
struct  d3d8_surface
 
struct  d3d8_vertexbuffer
 
struct  d3d8_indexbuffer
 
struct  d3d8_texture
 
struct  d3d8_vertex_declaration
 
struct  d3d8_vertex_shader
 
struct  d3d8_pixel_shader
 

Macros

#define COBJMACROS
 
#define D3DPRESENTFLAGS_MASK   0x00000fffu
 
#define D3D8_MAX_VERTEX_SHADER_CONSTANTF   256
 
#define D3D8_MAX_PIXEL_SHADER_CONSTANTF   8
 
#define D3D8_MAX_STREAMS   16
 
#define D3DFMT_RESZ   MAKEFOURCC('R','E','S','Z')
 
#define D3D8_RESZ_CODE   0x7fa05000
 
#define VS_HIGHESTFIXEDFXF   0xF0000000
 
#define D3D8_INITIAL_HANDLE_TABLE_SIZE   64
 
#define D3D8_INVALID_HANDLE   ~0U
 

Enumerations

enum  d3d8_handle_type { D3D8_HANDLE_FREE , D3D8_HANDLE_VS , D3D8_HANDLE_PS , D3D8_HANDLE_SB }
 
enum  d3d8_device_state { D3D8_DEVICE_STATE_OK , D3D8_DEVICE_STATE_LOST , D3D8_DEVICE_STATE_NOT_RESET }
 

Functions

void d3dcaps_from_wined3dcaps (D3DCAPS8 *caps, const struct wined3d_caps *wined3d_caps, unsigned int adapter_ordinal)
 
BOOL d3d8_init (struct d3d8 *d3d8)
 
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)
 
static struct d3d8_device * impl_from_IDirect3DDevice8 (IDirect3DDevice8 *iface)
 
void d3d8_resource_cleanup (struct d3d8_resource *resource)
 
HRESULT d3d8_resource_free_private_data (struct d3d8_resource *resource, const GUID *guid)
 
HRESULT d3d8_resource_get_private_data (struct d3d8_resource *resource, const GUID *guid, void *data, DWORD *data_size)
 
void d3d8_resource_init (struct d3d8_resource *resource)
 
HRESULT d3d8_resource_set_private_data (struct d3d8_resource *resource, const GUID *guid, const void *data, DWORD data_size, DWORD flags)
 
void volume_init (struct d3d8_volume *volume, struct wined3d_texture *wined3d_texture, unsigned int sub_resource_idx, const struct wined3d_parent_ops **parent_ops)
 
HRESULT d3d8_swapchain_create (struct d3d8_device *device, struct wined3d_swapchain_desc *desc, unsigned int swap_interval, struct d3d8_swapchain **swapchain)
 
struct wined3d_rendertarget_view * d3d8_surface_acquire_rendertarget_view (struct d3d8_surface *surface)
 
struct d3d8_surface * d3d8_surface_create (struct wined3d_texture *wined3d_texture, unsigned int sub_resource_idx, IUnknown *container)
 
struct d3d8_device * d3d8_surface_get_device (const struct d3d8_surface *surface)
 
void d3d8_surface_release_rendertarget_view (struct d3d8_surface *surface, struct wined3d_rendertarget_view *rtv)
 
struct d3d8_surface * unsafe_impl_from_IDirect3DSurface8 (IDirect3DSurface8 *iface)
 
HRESULT vertexbuffer_init (struct d3d8_vertexbuffer *buffer, struct d3d8_device *device, UINT size, DWORD usage, DWORD fvf, D3DPOOL pool)
 
struct d3d8_vertexbuffer * unsafe_impl_from_IDirect3DVertexBuffer8 (IDirect3DVertexBuffer8 *iface)
 
HRESULT indexbuffer_init (struct d3d8_indexbuffer *buffer, struct d3d8_device *device, UINT size, DWORD usage, D3DFORMAT format, D3DPOOL pool)
 
struct d3d8_indexbuffer * unsafe_impl_from_IDirect3DIndexBuffer8 (IDirect3DIndexBuffer8 *iface)
 
HRESULT d3d8_texture_2d_init (struct d3d8_texture *texture, struct d3d8_device *device, unsigned int width, unsigned int height, unsigned int level_count, DWORD usage, D3DFORMAT format, D3DPOOL pool)
 
HRESULT d3d8_texture_3d_init (struct d3d8_texture *texture, struct d3d8_device *device, unsigned int width, unsigned int height, unsigned int depth, unsigned int levels, DWORD usage, D3DFORMAT format, D3DPOOL pool)
 
HRESULT d3d8_texture_cube_init (struct d3d8_texture *texture, struct d3d8_device *device, unsigned int edge_length, unsigned int level_count, DWORD usage, D3DFORMAT format, D3DPOOL pool)
 
static struct wined3d_texture * d3d8_texture_get_draw_texture (struct d3d8_texture *texture)
 
struct d3d8_texture * unsafe_impl_from_IDirect3DBaseTexture8 (IDirect3DBaseTexture8 *iface)
 
void d3d8_vertex_declaration_destroy (struct d3d8_vertex_declaration *declaration)
 
HRESULT d3d8_vertex_declaration_init (struct d3d8_vertex_declaration *declaration, struct d3d8_device *device, const DWORD *elements, DWORD shader_handle)
 
HRESULT d3d8_vertex_declaration_init_fvf (struct d3d8_vertex_declaration *declaration, struct d3d8_device *device, DWORD fvf)
 
void d3d8_vertex_shader_destroy (struct d3d8_vertex_shader *shader)
 
HRESULT d3d8_vertex_shader_init (struct d3d8_vertex_shader *shader, struct d3d8_device *device, const DWORD *declaration, const DWORD *byte_code, DWORD shader_handle, DWORD usage)
 
void d3d8_pixel_shader_destroy (struct d3d8_pixel_shader *shader)
 
HRESULT d3d8_pixel_shader_init (struct d3d8_pixel_shader *shader, struct d3d8_device *device, const DWORD *byte_code, DWORD shader_handle)
 
D3DFORMAT d3dformat_from_wined3dformat (enum wined3d_format_id format)
 
enum wined3d_format_id wined3dformat_from_d3dformat (D3DFORMAT format)
 
unsigned int wined3dmapflags_from_d3dmapflags (unsigned int flags, unsigned int usage)
 
void load_local_constants (const DWORD *d3d8_elements, struct wined3d_shader *wined3d_vertex_shader)
 
size_t parse_token (const DWORD *pToken)
 
static DWORD d3dusage_from_wined3dusage (unsigned int wined3d_usage, unsigned int bind_flags)
 
static D3DPOOL d3dpool_from_wined3daccess (unsigned int access, unsigned int usage)
 
static unsigned int map_access_from_usage (unsigned int usage)
 
static unsigned int wined3daccess_from_d3dpool (D3DPOOL pool, unsigned int usage)
 
static unsigned int wined3d_usage_from_d3d (D3DPOOL pool, DWORD usage)
 
static unsigned int wined3d_bind_flags_from_d3d8_usage (DWORD usage)
 
static D3DMULTISAMPLE_TYPE d3dmultisample_type_from_wined3d (enum wined3d_multisample_type type)
 
static enum wined3d_device_type wined3d_device_type_from_d3d (D3DDEVTYPE type)
 

Variables

const struct wined3d_parent_ops d3d8_null_wined3d_parent_ops
 

Macro Definition Documentation

◆ COBJMACROS

#define COBJMACROS

Definition at line 29 of file d3d8_private.h.

◆ D3D8_INITIAL_HANDLE_TABLE_SIZE

#define D3D8_INITIAL_HANDLE_TABLE_SIZE   64

Definition at line 69 of file d3d8_private.h.

◆ D3D8_INVALID_HANDLE

#define D3D8_INVALID_HANDLE   ~0U

Definition at line 70 of file d3d8_private.h.

◆ D3D8_MAX_PIXEL_SHADER_CONSTANTF

#define D3D8_MAX_PIXEL_SHADER_CONSTANTF   8

Definition at line 40 of file d3d8_private.h.

◆ D3D8_MAX_STREAMS

#define D3D8_MAX_STREAMS   16

Definition at line 41 of file d3d8_private.h.

◆ D3D8_MAX_VERTEX_SHADER_CONSTANTF

#define D3D8_MAX_VERTEX_SHADER_CONSTANTF   256

Definition at line 39 of file d3d8_private.h.

◆ D3D8_RESZ_CODE

#define D3D8_RESZ_CODE   0x7fa05000

Definition at line 44 of file d3d8_private.h.

◆ D3DFMT_RESZ

#define D3DFMT_RESZ   MAKEFOURCC('R','E','S','Z')

Definition at line 43 of file d3d8_private.h.

◆ D3DPRESENTFLAGS_MASK

#define D3DPRESENTFLAGS_MASK   0x00000fffu

Definition at line 37 of file d3d8_private.h.

◆ VS_HIGHESTFIXEDFXF

#define VS_HIGHESTFIXEDFXF   0xF0000000

Definition at line 47 of file d3d8_private.h.

Enumeration Type Documentation

◆ d3d8_device_state

Enumerator
D3D8_DEVICE_STATE_OK 
D3D8_DEVICE_STATE_LOST 
D3D8_DEVICE_STATE_NOT_RESET 

Definition at line 100 of file d3d8_private.h.

101{
105};
@ D3D8_DEVICE_STATE_OK
Definition: d3d8_private.h:102
@ D3D8_DEVICE_STATE_NOT_RESET
Definition: d3d8_private.h:104
@ D3D8_DEVICE_STATE_LOST
Definition: d3d8_private.h:103

◆ d3d8_handle_type

Enumerator
D3D8_HANDLE_FREE 
D3D8_HANDLE_VS 
D3D8_HANDLE_PS 
D3D8_HANDLE_SB 

Definition at line 72 of file d3d8_private.h.

73{
78};
@ D3D8_HANDLE_PS
Definition: d3d8_private.h:76
@ D3D8_HANDLE_VS
Definition: d3d8_private.h:75
@ D3D8_HANDLE_SB
Definition: d3d8_private.h:77
@ D3D8_HANDLE_FREE
Definition: d3d8_private.h:74

Function Documentation

◆ d3d8_init()

BOOL d3d8_init ( struct d3d8 *  d3d8)

Definition at line 474 of file directx.c.

475{
480 unsigned int adapter_idx, output_idx, adapter_count, output_count = 0;
482
484 d3d8->refcount = 1;
485
488 if (!d3d8->wined3d)
489 {
491 return FALSE;
492 }
493
495 for (adapter_idx = 0; adapter_idx < adapter_count; ++adapter_idx)
496 {
499 }
500
502 if (!d3d8->wined3d_outputs)
503 {
506 return FALSE;
507 }
508
510 for (adapter_idx = 0; adapter_idx < adapter_count; ++adapter_idx)
511 {
514 for (output_idx = 0; output_idx < output_count; ++output_idx)
515 {
519 }
520 }
521
523 return TRUE;
524}
static const struct IDirect3D8Vtbl d3d8_vtbl
Definition: directx.c:452
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
unsigned long DWORD
Definition: ntddk_ex.h:95
GLbitfield flags
Definition: glext.h:7161
static int adapter_count
Definition: monitor.c:148
#define calloc
Definition: rosglue.h:14
LONG refcount
Definition: d3d8_private.h:57
IDirect3D8 IDirect3D8_iface
Definition: d3d8_private.h:56
struct wined3d_output ** wined3d_outputs
Definition: d3d8_private.h:59
unsigned int wined3d_output_count
Definition: d3d8_private.h:60
struct wined3d * wined3d
Definition: d3d8_private.h:58
unsigned int CDECL wined3d_adapter_get_output_count(const struct wined3d_adapter *adapter)
Definition: directx.c:1038
ULONG CDECL wined3d_decref(struct wined3d *wined3d)
Definition: directx.c:198
UINT CDECL wined3d_get_adapter_count(const struct wined3d *wined3d)
Definition: directx.c:1019
struct wined3d_adapter *CDECL wined3d_get_adapter(const struct wined3d *wined3d, unsigned int idx)
Definition: directx.c:1009
struct wined3d_output *CDECL wined3d_adapter_get_output(const struct wined3d_adapter *adapter, unsigned int idx)
Definition: directx.c:1027
#define WINED3D_LEGACY_UNBOUND_RESOURCE_COLOR
Definition: wined3d.h:1331
#define WINED3D_HANDLE_RESTORE
Definition: wined3d.h:1327
#define WINED3D_NO_PRIMITIVE_RESTART
Definition: wined3d.h:1332
#define WINED3D_LEGACY_DEPTH_BIAS
Definition: wined3d.h:1322
#define WINED3D_NO_DRAW_INDIRECT
Definition: wined3d.h:1335
#define WINED3D_PIXEL_CENTER_INTEGER
Definition: wined3d.h:1328
#define WINED3D_LEGACY_CUBEMAP_FILTERING
Definition: wined3d.h:1333
void WINAPI wined3d_mutex_unlock(void)
Definition: wined3d_main.c:544
void WINAPI wined3d_mutex_lock(void)
Definition: wined3d_main.c:539
struct wined3d *CDECL wined3d_create(uint32_t flags)
Definition: wined3d_main.c:142

Referenced by Direct3DCreate8().

◆ d3d8_pixel_shader_destroy()

void d3d8_pixel_shader_destroy ( struct d3d8_pixel_shader *  shader)

Definition at line 142 of file shader.c.

143{
144 TRACE("shader %p.\n", shader);
145
147 wined3d_shader_decref(shader->wined3d_shader);
149}
ULONG CDECL wined3d_shader_decref(struct wined3d_shader *shader)
Definition: shader.c:2588
GLuint shader
Definition: glext.h:6030
#define TRACE(s)
Definition: solgame.cpp:4

Referenced by d3d8_device_DeletePixelShader().

◆ d3d8_pixel_shader_init()

HRESULT d3d8_pixel_shader_init ( struct d3d8_pixel_shader *  shader,
struct d3d8_device *  device,
const DWORD *  byte_code,
DWORD  shader_handle 
)

Definition at line 156 of file shader.c.

158{
160 HRESULT hr;
161
162 shader->handle = shader_handle;
163
164 desc.byte_code = byte_code;
165 desc.byte_code_size = ~(size_t)0;
166
168 hr = wined3d_shader_create_ps(device->wined3d_device, &desc, shader,
171 if (FAILED(hr))
172 {
173 WARN("Failed to create wined3d pixel shader, hr %#lx.\n", hr);
174 return hr;
175 }
176
177 return D3D_OK;
178}
#define WARN(fmt,...)
Definition: precomp.h:61
#define D3D_OK
Definition: d3d.h:106
HRESULT hr
Definition: delayimp.cpp:582
static const struct wined3d_parent_ops d3d8_pixelshader_wined3d_parent_ops
Definition: shader.c:151
HRESULT CDECL wined3d_shader_create_ps(struct wined3d_device *device, const struct wined3d_shader_desc *desc, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_shader **shader)
Definition: shader.c:3291
unsigned int size_t
Definition: corecrt.h:203
#define FAILED(hr)
Definition: intsafe.h:51
D3D11_SHADER_VARIABLE_DESC desc
Definition: reflection.c:1683
Definition: devices.h:37
const DWORD * byte_code
Definition: wined3d.h:2105

Referenced by d3d8_device_CreatePixelShader().

◆ d3d8_resource_cleanup()

void d3d8_resource_cleanup ( struct d3d8_resource *  resource)

◆ d3d8_resource_free_private_data()

HRESULT d3d8_resource_free_private_data ( struct d3d8_resource *  resource,
const GUID *  guid 
)

Definition at line 154 of file d3d8_main.c.

155{
157
160 if (!entry)
161 {
163 return D3DERR_NOTFOUND;
164 }
165
168
169 return D3D_OK;
170}
GUID guid
Definition: version.c:147
uint32_t entry
Definition: isohybrid.c:63
#define D3DERR_NOTFOUND
Definition: d3d8.h:76
static struct wined3d_private_data * wined3d_private_store_get_private_data(const struct wined3d_private_store *store, const GUID *tag)
Definition: wined3d.h:2612
static void wined3d_private_store_free_private_data(struct wined3d_private_store *store, struct wined3d_private_data *entry)
Definition: wined3d.h:2627

Referenced by d3d8_indexbuffer_FreePrivateData(), d3d8_surface_FreePrivateData(), d3d8_texture_2d_FreePrivateData(), d3d8_texture_3d_FreePrivateData(), d3d8_texture_cube_FreePrivateData(), d3d8_vertexbuffer_FreePrivateData(), and d3d8_volume_FreePrivateData().

◆ d3d8_resource_get_private_data()

HRESULT d3d8_resource_get_private_data ( struct d3d8_resource *  resource,
const GUID *  guid,
void *  data,
DWORD *  data_size 
)

Definition at line 172 of file d3d8_main.c.

174{
175 const struct wined3d_private_data *stored_data;
176 DWORD size_in;
177 HRESULT hr;
178
180 stored_data = wined3d_private_store_get_private_data(&resource->private_store, guid);
181 if (!stored_data)
182 {
184 goto done;
185 }
186
187 size_in = *data_size;
188 *data_size = stored_data->size;
189 if (!data)
190 {
191 hr = D3D_OK;
192 goto done;
193 }
194 if (size_in < stored_data->size)
195 {
197 goto done;
198 }
199
200 if (stored_data->flags & WINED3DSPD_IUNKNOWN)
201 IUnknown_AddRef(stored_data->content.object);
202 memcpy(data, stored_data->content.data, stored_data->size);
203 hr = D3D_OK;
204
205done:
207 return hr;
208}
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLsizeiptr size
Definition: glext.h:5919
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
#define D3DERR_MOREDATA
Definition: d3d8.h:77
union wined3d_private_data::@4825 content
IUnknown * object
Definition: wined3d.h:2285
#define WINED3DSPD_IUNKNOWN
Definition: wined3d.h:1018

Referenced by d3d8_indexbuffer_GetPrivateData(), d3d8_surface_GetPrivateData(), d3d8_texture_2d_GetPrivateData(), d3d8_texture_3d_GetPrivateData(), d3d8_texture_cube_GetPrivateData(), d3d8_vertexbuffer_GetPrivateData(), and d3d8_volume_GetPrivateData().

◆ d3d8_resource_init()

void d3d8_resource_init ( struct d3d8_resource *  resource)

Definition at line 210 of file d3d8_main.c.

211{
212 resource->refcount = 1;
213 wined3d_private_store_init(&resource->private_store);
214}
static void wined3d_private_store_init(struct wined3d_private_store *store)
Definition: wined3d.h:2607

Referenced by d3d8_surface_create(), d3d8_texture_init(), indexbuffer_init(), vertexbuffer_init(), and volume_init().

◆ d3d8_resource_set_private_data()

HRESULT d3d8_resource_set_private_data ( struct d3d8_resource *  resource,
const GUID *  guid,
const void *  data,
DWORD  data_size,
DWORD  flags 
)

Definition at line 216 of file d3d8_main.c.

218{
219 HRESULT hr;
220
222 hr = wined3d_private_store_set_private_data(&resource->private_store, guid, data, data_size, flags);
224 return hr;
225}
static HRESULT wined3d_private_store_set_private_data(struct wined3d_private_store *store, const GUID *guid, const void *data, DWORD data_size, uint32_t flags)
Definition: wined3d.h:2648

Referenced by d3d8_indexbuffer_SetPrivateData(), d3d8_surface_SetPrivateData(), d3d8_texture_2d_SetPrivateData(), d3d8_texture_3d_SetPrivateData(), d3d8_texture_cube_SetPrivateData(), d3d8_vertexbuffer_SetPrivateData(), and d3d8_volume_SetPrivateData().

◆ d3d8_surface_acquire_rendertarget_view()

struct wined3d_rendertarget_view * d3d8_surface_acquire_rendertarget_view ( struct d3d8_surface *  surface)

Definition at line 379 of file surface.c.

380{
381 HRESULT hr;
382
383 /* The surface reference count can be equal to 0 when this function is
384 * called. In order to properly manage the render target view reference
385 * count, we temporarily increment the surface reference count. */
387
388 if (surface->wined3d_rtv)
389 return surface->wined3d_rtv;
390
392 surface->sub_resource_idx, surface, &d3d8_view_wined3d_parent_ops, &surface->wined3d_rtv)))
393 {
394 ERR("Failed to create rendertarget view, hr %#lx.\n", hr);
396 return NULL;
397 }
398
399 if (surface->texture)
400 list_add_head(&surface->texture->rtv_list, &surface->rtv_entry);
401
402 return surface->wined3d_rtv;
403}
static void list_add_head(struct list_entry *head, struct list_entry *entry)
Definition: list.h:76
#define ERR(fmt,...)
Definition: precomp.h:57
#define NULL
Definition: types.h:112
static ULONG WINAPI d3d8_surface_Release(IDirect3DSurface8 *iface)
Definition: surface.c:79
static ULONG WINAPI d3d8_surface_AddRef(IDirect3DSurface8 *iface)
Definition: surface.c:49
static const struct wined3d_parent_ops d3d8_view_wined3d_parent_ops
Definition: surface.c:367
HRESULT CDECL wined3d_rendertarget_view_create_from_sub_resource(struct wined3d_texture *texture, unsigned int sub_resource_idx, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_rendertarget_view **view)
Definition: view.c:946
struct d3d8_texture * texture
Definition: d3d8_private.h:198
unsigned int sub_resource_idx
Definition: d3d8_private.h:193
struct list rtv_entry
Definition: d3d8_private.h:194
struct wined3d_rendertarget_view * wined3d_rtv
Definition: d3d8_private.h:195
IDirect3DSurface8 IDirect3DSurface8_iface
Definition: d3d8_private.h:190
struct wined3d_texture * wined3d_texture
Definition: d3d8_private.h:192

Referenced by d3d8_device_SetRenderTarget().

◆ d3d8_surface_create()

struct d3d8_surface * d3d8_surface_create ( struct wined3d_texture *  wined3d_texture,
unsigned int  sub_resource_idx,
IUnknown *  container 
)

Definition at line 318 of file surface.c.

320{
321 IDirect3DBaseTexture8 *texture;
322 struct d3d8_surface *surface;
323
324 if (!(surface = calloc(1, sizeof(*surface))))
325 return NULL;
326
328 d3d8_resource_init(&surface->resource);
329 surface->resource.refcount = 0;
330 list_init(&surface->rtv_entry);
331 surface->container = container;
335
336 if (surface->container && SUCCEEDED(IUnknown_QueryInterface(surface->container,
337 &IID_IDirect3DBaseTexture8, (void **)&texture)))
338 {
341 }
342
345
346 TRACE("Created surface %p.\n", surface);
347 return surface;
348}
static void list_init(struct list_entry *head)
Definition: list.h:51
void d3d8_resource_init(struct d3d8_resource *resource)
Definition: d3d8_main.c:210
struct d3d8_texture * unsafe_impl_from_IDirect3DBaseTexture8(IDirect3DBaseTexture8 *iface)
Definition: texture.c:1017
static const struct wined3d_parent_ops d3d8_surface_wined3d_parent_ops
Definition: surface.c:313
static const IDirect3DSurface8Vtbl d3d8_surface_vtbl
Definition: surface.c:288
struct wined3d_swapchain *CDECL wined3d_texture_get_swapchain(struct wined3d_texture *texture)
Definition: texture.c:4028
void CDECL wined3d_texture_set_sub_resource_parent(struct wined3d_texture *texture, unsigned int sub_resource_idx, void *parent, const struct wined3d_parent_ops *parent_ops)
Definition: texture.c:4043
GLenum GLuint texture
Definition: glext.h:6295
#define SUCCEEDED(hr)
Definition: intsafe.h:50
#define IDirect3DBaseTexture8_Release(p)
Definition: d3d8.h:542
struct d3d8_resource resource
Definition: d3d8_private.h:191
IUnknown * container
Definition: d3d8_private.h:197
struct wined3d_swapchain * swapchain
Definition: d3d8_private.h:199

Referenced by d3d8_device_create_surface(), d3d8_device_CreateCubeTexture(), d3d8_device_CreateTexture(), d3d8_device_Reset(), and d3d8_swapchain_create().

◆ d3d8_surface_get_device()

struct d3d8_device * d3d8_surface_get_device ( const struct d3d8_surface *  surface)

Definition at line 372 of file surface.c.

373{
374 IDirect3DDevice8 *device;
375 device = surface->texture ? &surface->texture->parent_device->IDirect3DDevice8_iface : surface->parent_device;
377}
static struct d3d8_device * impl_from_IDirect3DDevice8(IDirect3DDevice8 *iface)
Definition: d3d8_private.h:144
IDirect3DDevice8 * parent_device
Definition: d3d8_private.h:196

Referenced by d3d8_device_SetRenderTarget().

◆ d3d8_surface_release_rendertarget_view()

void d3d8_surface_release_rendertarget_view ( struct d3d8_surface *  surface,
struct wined3d_rendertarget_view *  rtv 
)

Definition at line 405 of file surface.c.

407{
408 if (rtv)
410}

Referenced by d3d8_device_SetRenderTarget().

◆ d3d8_swapchain_create()

HRESULT d3d8_swapchain_create ( struct d3d8_device *  device,
struct wined3d_swapchain_desc *  desc,
unsigned int  swap_interval,
struct d3d8_swapchain **  swapchain 
)

Definition at line 193 of file swapchain.c.

195{
196 struct wined3d_rendertarget_view *wined3d_dsv;
197 struct d3d8_swapchain *object;
198 struct d3d8_surface *surface;
199 unsigned int i;
200 HRESULT hr;
201
202 if (!(object = calloc(1, sizeof(*object))))
203 return E_OUTOFMEMORY;
204
205 if (FAILED(hr = swapchain_init(object, device, desc, swap_interval)))
206 {
207 WARN("Failed to initialize swapchain, hr %#lx.\n", hr);
208 free(object);
209 return hr;
210 }
211
212 for (i = 0; i < desc->backbuffer_count; ++i)
213 {
214 if (!(surface = d3d8_surface_create(wined3d_swapchain_get_back_buffer(object->wined3d_swapchain, i), 0,
215 (IUnknown *)&device->IDirect3DDevice8_iface)))
216 {
217 IDirect3DSwapChain8_Release(&object->IDirect3DSwapChain8_iface);
218 return E_OUTOFMEMORY;
219 }
220 surface->parent_device = &device->IDirect3DDevice8_iface;
221 }
222
223 if ((desc->flags & WINED3D_SWAPCHAIN_IMPLICIT)
224 && (wined3d_dsv = wined3d_device_context_get_depth_stencil_view(device->immediate_context)))
225 {
227
229 (IUnknown *)&device->IDirect3DDevice8_iface)))
230 {
231 IDirect3DSwapChain8_Release(&object->IDirect3DSwapChain8_iface);
232 return E_OUTOFMEMORY;
233 }
234 surface->parent_device = &device->IDirect3DDevice8_iface;
235 }
236
237 TRACE("Created swapchain %p.\n", object);
238 *swapchain = object;
239
240 return D3D_OK;
241}
static HRESULT swapchain_init(struct d3d8_swapchain *swapchain, struct d3d8_device *device, struct wined3d_swapchain_desc *desc, unsigned int swap_interval)
Definition: swapchain.c:170
struct d3d8_surface * d3d8_surface_create(struct wined3d_texture *wined3d_texture, unsigned int sub_resource_idx, IUnknown *container)
Definition: surface.c:318
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define free
Definition: debug_ros.c:5
struct wined3d_rendertarget_view *CDECL wined3d_device_context_get_depth_stencil_view(const struct wined3d_device_context *context)
Definition: device.c:4676
struct wined3d_texture *__cdecl wined3d_texture_from_resource(struct wined3d_resource *resource)
Definition: texture.c:3343
struct wined3d_resource *CDECL wined3d_rendertarget_view_get_resource(const struct wined3d_rendertarget_view *view)
Definition: view.c:430
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
#define IDirect3DSwapChain8_Release(p)
Definition: d3d8.h:266
struct wined3d_texture *CDECL wined3d_swapchain_get_back_buffer(const struct wined3d_swapchain *swapchain, UINT back_buffer_idx)
Definition: swapchain.c:256
#define WINED3D_SWAPCHAIN_IMPLICIT
Definition: wined3d.h:901

Referenced by d3d8_device_CreateAdditionalSwapChain(), and device_init().

◆ d3d8_texture_2d_init()

HRESULT d3d8_texture_2d_init ( struct d3d8_texture *  texture,
struct d3d8_device *  device,
unsigned int  width,
unsigned int  height,
unsigned int  level_count,
DWORD  usage,
D3DFORMAT  format,
D3DPOOL  pool 
)

Definition at line 1114 of file texture.c.

1116{
1118
1119 desc.resource_type = WINED3D_RTYPE_TEXTURE_2D;
1121 desc.multisample_type = WINED3D_MULTISAMPLE_NONE;
1122 desc.multisample_quality = 0;
1126 desc.width = width;
1127 desc.height = height;
1128 desc.depth = 1;
1129 desc.size = 0;
1130
1132 {
1133 WARN("Texture can't be created with the D3DUSAGE_WRITEONLY flag, returning D3DERR_INVALIDCALL.\n");
1134 return D3DERR_INVALIDCALL;
1135 }
1136
1137 texture->IDirect3DBaseTexture8_iface.lpVtbl = (const IDirect3DBaseTexture8Vtbl *)&Direct3DTexture8_Vtbl;
1138 return d3d8_texture_init(texture, device, &desc, pool, 1, level_count);
1139}
#define D3DERR_INVALIDCALL
Definition: d3d10_private.h:42
static unsigned int wined3d_bind_flags_from_d3d8_usage(DWORD usage)
Definition: d3d8_private.h:375
static unsigned int wined3d_usage_from_d3d(D3DPOOL pool, DWORD usage)
Definition: d3d8_private.h:365
static unsigned int wined3daccess_from_d3dpool(D3DPOOL pool, unsigned int usage)
Definition: d3d8_private.h:341
enum wined3d_format_id wined3dformat_from_d3dformat(D3DFORMAT format)
Definition: device.c:84
#define D3DUSAGE_WRITEONLY
Definition: d3d8types.h:93
static HRESULT d3d8_texture_init(struct d3d8_texture *texture, struct d3d8_device *device, const struct wined3d_resource_desc *desc, D3DPOOL pool, unsigned int layer_count, unsigned int level_count)
Definition: texture.c:1054
static const IDirect3DTexture8Vtbl Direct3DTexture8_Vtbl
Definition: texture.c:372
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546
GLint GLint GLsizei width
Definition: gl.h:1546
GLsizeiptr const GLvoid GLenum usage
Definition: glext.h:5919
@ WINED3D_MULTISAMPLE_NONE
Definition: wined3d.h:573
@ WINED3D_RTYPE_TEXTURE_2D
Definition: wined3d.h:720
#define WINED3D_BIND_SHADER_RESOURCE
Definition: wined3d.h:912

Referenced by d3d8_device_CreateTexture().

◆ d3d8_texture_3d_init()

HRESULT d3d8_texture_3d_init ( struct d3d8_texture *  texture,
struct d3d8_device *  device,
unsigned int  width,
unsigned int  height,
unsigned int  depth,
unsigned int  levels,
DWORD  usage,
D3DFORMAT  format,
D3DPOOL  pool 
)

Definition at line 1168 of file texture.c.

1170{
1172
1173 /* In d3d8, 3D textures can't be used as rendertarget or depth/stencil buffer. */
1175 return D3DERR_INVALIDCALL;
1176
1177 desc.resource_type = WINED3D_RTYPE_TEXTURE_3D;
1179 desc.multisample_type = WINED3D_MULTISAMPLE_NONE;
1180 desc.multisample_quality = 0;
1184 desc.width = width;
1185 desc.height = height;
1186 desc.depth = depth;
1187 desc.size = 0;
1188
1190 {
1191 WARN("Texture can't be created with the D3DUSAGE_WRITEONLY flags, returning D3DERR_INVALIDCALL.\n");
1192 return D3DERR_INVALIDCALL;
1193 }
1194
1195 texture->IDirect3DBaseTexture8_iface.lpVtbl = (const IDirect3DBaseTexture8Vtbl *)&Direct3DVolumeTexture8_Vtbl;
1196 return d3d8_texture_init(texture, device, &desc, pool, 1, level_count);
1197}
#define D3DUSAGE_RENDERTARGET
Definition: d3d8types.h:91
#define D3DUSAGE_DEPTHSTENCIL
Definition: d3d8types.h:92
static const IDirect3DVolumeTexture8Vtbl Direct3DVolumeTexture8_Vtbl
Definition: texture.c:990
GLint GLint GLsizei GLsizei GLsizei depth
Definition: gl.h:1546
@ WINED3D_RTYPE_TEXTURE_3D
Definition: wined3d.h:721

Referenced by d3d8_device_CreateVolumeTexture().

◆ d3d8_texture_cube_init()

HRESULT d3d8_texture_cube_init ( struct d3d8_texture *  texture,
struct d3d8_device *  device,
unsigned int  edge_length,
unsigned int  level_count,
DWORD  usage,
D3DFORMAT  format,
D3DPOOL  pool 
)

Definition at line 1141 of file texture.c.

1143{
1145
1146 desc.resource_type = WINED3D_RTYPE_TEXTURE_2D;
1148 desc.multisample_type = WINED3D_MULTISAMPLE_NONE;
1149 desc.multisample_quality = 0;
1153 desc.width = edge_length;
1154 desc.height = edge_length;
1155 desc.depth = 1;
1156 desc.size = 0;
1157
1159 {
1160 WARN("Texture can't be created with the D3DUSAGE_WRITEONLY flag, returning D3DERR_INVALIDCALL.\n");
1161 return D3DERR_INVALIDCALL;
1162 }
1163
1164 texture->IDirect3DBaseTexture8_iface.lpVtbl = (const IDirect3DBaseTexture8Vtbl *)&Direct3DCubeTexture8_Vtbl;
1165 return d3d8_texture_init(texture, device, &desc, pool, 6, level_count);
1166}
static const IDirect3DCubeTexture8Vtbl Direct3DCubeTexture8_Vtbl
Definition: texture.c:697
#define WINED3DUSAGE_LEGACY_CUBEMAP
Definition: wined3d.h:934

Referenced by d3d8_device_CreateCubeTexture().

◆ d3d8_texture_get_draw_texture()

◆ d3d8_vertex_declaration_destroy()

void d3d8_vertex_declaration_destroy ( struct d3d8_vertex_declaration *  declaration)

Definition at line 318 of file vertexdeclaration.c.

319{
320 TRACE("declaration %p.\n", declaration);
321
322 wined3d_vertex_declaration_decref(declaration->wined3d_vertex_declaration);
323}
ULONG CDECL wined3d_vertex_declaration_decref(struct wined3d_vertex_declaration *declaration)

Referenced by d3d8_device_get_fvf_declaration(), d3d8_device_Release(), d3d8_vertex_shader_init(), and d3d8_vertexshader_wined3d_object_destroyed().

◆ d3d8_vertex_declaration_init()

HRESULT d3d8_vertex_declaration_init ( struct d3d8_vertex_declaration *  declaration,
struct d3d8_device *  device,
const DWORD *  elements,
DWORD  shader_handle 
)

Definition at line 330 of file vertexdeclaration.c.

332{
333 struct wined3d_vertex_element *wined3d_elements;
334 UINT wined3d_element_count;
335 HRESULT hr;
336
337 declaration->shader_handle = shader_handle;
338
339 wined3d_element_count = convert_to_wined3d_declaration(elements, &declaration->elements_size,
340 &wined3d_elements, &declaration->stream_map);
341 if (!(declaration->elements = malloc(declaration->elements_size)))
342 {
343 ERR("Failed to allocate vertex declaration elements memory.\n");
344 free(wined3d_elements);
345 return E_OUTOFMEMORY;
346 }
347
348 memcpy(declaration->elements, elements, declaration->elements_size);
349
351 hr = wined3d_vertex_declaration_create(device->wined3d_device, wined3d_elements, wined3d_element_count,
354 free(wined3d_elements);
355 if (FAILED(hr))
356 {
357 WARN("Failed to create wined3d vertex declaration, hr %#lx.\n", hr);
358 free(declaration->elements);
359 if (hr == E_INVALIDARG)
360 hr = E_FAIL;
361 return hr;
362 }
363
364 return D3D_OK;
365}
static const struct wined3d_parent_ops d3d8_vertexdeclaration_wined3d_parent_ops
static UINT convert_to_wined3d_declaration(const DWORD *d3d8_elements, DWORD *d3d8_elements_size, struct wined3d_vertex_element **wined3d_elements, DWORD *stream_map)
#define E_INVALIDARG
Definition: ddrawi.h:101
#define E_FAIL
Definition: ddrawi.h:102
#define malloc
Definition: debug_ros.c:4
unsigned int UINT
Definition: sysinfo.c:13
HRESULT CDECL wined3d_vertex_declaration_create(struct wined3d_device *device, const struct wined3d_vertex_element *elements, UINT element_count, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_vertex_declaration **declaration)

Referenced by d3d8_vertexshader_create_vertexdeclaration().

◆ d3d8_vertex_declaration_init_fvf()

HRESULT d3d8_vertex_declaration_init_fvf ( struct d3d8_vertex_declaration *  declaration,
struct d3d8_device *  device,
DWORD  fvf 
)

Definition at line 367 of file vertexdeclaration.c.

369{
370 HRESULT hr;
371
372 declaration->elements = NULL;
373 declaration->elements_size = 0;
374 declaration->stream_map = 1;
375 declaration->shader_handle = fvf;
376
378 &d3d8_vertexdeclaration_wined3d_parent_ops, &declaration->wined3d_vertex_declaration);
379 if (FAILED(hr))
380 {
381 WARN("Failed to create wined3d vertex declaration, hr %#lx.\n", hr);
382 if (hr == E_INVALIDARG)
383 hr = E_FAIL;
384 return hr;
385 }
386
387 return D3D_OK;
388}
HRESULT CDECL wined3d_vertex_declaration_create_from_fvf(struct wined3d_device *device, uint32_t fvf, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_vertex_declaration **declaration)

Referenced by d3d8_device_get_fvf_declaration().

◆ d3d8_vertex_shader_destroy()

void d3d8_vertex_shader_destroy ( struct d3d8_vertex_shader *  shader)

Definition at line 31 of file shader.c.

32{
33 TRACE("shader %p.\n", shader);
34
35 if (shader->wined3d_shader)
36 {
38 wined3d_shader_decref(shader->wined3d_shader);
40 }
41 else
42 {
44 }
45}
static void STDMETHODCALLTYPE d3d8_vertexshader_wined3d_object_destroyed(void *parent)
Definition: shader.c:24

Referenced by d3d8_device_DeleteVertexShader().

◆ d3d8_vertex_shader_init()

HRESULT d3d8_vertex_shader_init ( struct d3d8_vertex_shader *  shader,
struct d3d8_device *  device,
const DWORD *  declaration,
const DWORD *  byte_code,
DWORD  shader_handle,
DWORD  usage 
)

Definition at line 78 of file shader.c.

80{
81 const DWORD *token = declaration;
82 HRESULT hr;
83
84 /* Test if the vertex declaration is valid. */
85 while (D3DVSD_END() != *token)
86 {
88
89 if (token_type == D3DVSD_TOKEN_STREAMDATA && !(token_type & 0x10000000))
90 {
93
94 if (reg == D3DVSDE_NORMAL && type != D3DVSDT_FLOAT3 && !byte_code)
95 {
96 WARN("Attempt to use a non-FLOAT3 normal with the fixed-function function\n");
97 return D3DERR_INVALIDCALL;
98 }
99 }
101 }
102
103 hr = d3d8_vertexshader_create_vertexdeclaration(device, declaration, shader_handle, &shader->vertex_declaration);
104 if (FAILED(hr))
105 {
106 WARN("Failed to create vertex declaration, hr %#lx.\n", hr);
107 return hr;
108 }
109
110 if (byte_code)
111 {
113
114 if (usage)
115 FIXME("Usage %#lx not implemented.\n", usage);
116
117 desc.byte_code = byte_code;
118 desc.byte_code_size = ~(size_t)0;
119
121 hr = wined3d_shader_create_vs(device->wined3d_device, &desc, shader,
124 if (FAILED(hr))
125 {
126 WARN("Failed to create wined3d vertex shader, hr %#lx.\n", hr);
127 d3d8_vertex_declaration_destroy(shader->vertex_declaration);
128 return hr;
129 }
130
131 load_local_constants(declaration, shader->wined3d_shader);
132 }
133
134 return D3D_OK;
135}
#define FIXME(fmt,...)
Definition: precomp.h:53
void d3d8_vertex_declaration_destroy(struct d3d8_vertex_declaration *declaration)
void load_local_constants(const DWORD *d3d8_elements, struct wined3d_shader *wined3d_vertex_shader)
size_t parse_token(const DWORD *pToken)
#define D3DVSD_VERTEXREGMASK
Definition: d3d8types.h:257
#define D3DVSD_END()
Definition: d3d8types.h:275
#define D3DVSD_DATATYPEMASK
Definition: d3d8types.h:259
@ D3DVSDE_NORMAL
Definition: d3d8types.h:201
#define D3DVSD_VERTEXREGSHIFT
Definition: d3d8types.h:243
#define D3DVSD_TOKENTYPEMASK
Definition: d3d8types.h:266
#define D3DVSD_DATATYPESHIFT
Definition: d3d8types.h:245
#define D3DVSD_TOKENTYPESHIFT
Definition: d3d8types.h:252
@ D3DVSD_TOKEN_STREAMDATA
Definition: d3d8types.h:167
enum _D3DVSD_TOKENTYPE D3DVSD_TOKENTYPE
@ D3DVSDT_FLOAT3
Definition: d3d8types.h:231
static const struct wined3d_parent_ops d3d8_vertexshader_wined3d_parent_ops
Definition: shader.c:47
static HRESULT d3d8_vertexshader_create_vertexdeclaration(struct d3d8_device *device, const DWORD *declaration, DWORD shader_handle, struct d3d8_vertex_declaration **decl_ptr)
Definition: shader.c:52
HRESULT CDECL wined3d_shader_create_vs(struct wined3d_device *device, const struct wined3d_shader_desc *desc, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_shader **shader)
Definition: shader.c:3318
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
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 token
Definition: glfuncs.h:210
static int reg
Definition: i386-dis.c:1290

Referenced by d3d8_device_CreateVertexShader().

◆ d3dcaps_from_wined3dcaps()

void d3dcaps_from_wined3dcaps ( D3DCAPS8 *  caps,
const struct wined3d_caps *  wined3d_caps,
unsigned int  adapter_ordinal 
)

Definition at line 321 of file device.c.

323{
325 caps->AdapterOrdinal = adapter_ordinal;
326 caps->Caps = wined3d_caps->Caps;
327 caps->Caps2 = wined3d_caps->Caps2;
328 caps->Caps3 = wined3d_caps->Caps3;
377
428 caps->LineCaps &= ~WINED3DLINECAPS_ANTIALIAS;
429 caps->StencilCaps &= ~WINED3DSTENCILCAPS_TWOSIDED;
433
434 /* D3D8 doesn't support SM 2.0 or higher, so clamp to 1.x */
435 if (caps->PixelShaderVersion)
436 caps->PixelShaderVersion = D3DPS_VERSION(1, 4);
437 else
438 caps->PixelShaderVersion = D3DPS_VERSION(0, 0);
439 if (caps->VertexShaderVersion)
441 else
444}
#define D3D8_MAX_VERTEX_SHADER_CONSTANTF
Definition: d3d8_private.h:39
#define D3DPS_VERSION(major, minor)
Definition: d3d8types.h:474
enum _D3DDEVTYPE D3DDEVTYPE
#define D3DVS_VERSION(major, minor)
Definition: d3d8types.h:475
#define D3DPRASTERCAPS_ANTIALIASEDGES
Definition: d3d8caps.h:77
#define D3DCAPS2_RESERVED
Definition: d3d8caps.h:23
#define D3DPTEXTURECAPS_CUBEMAP_POW2
Definition: d3d8caps.h:126
#define D3DPBLENDCAPS_SRCCOLOR
Definition: d3d8caps.h:98
#define D3DVTXPCAPS_LOCALVIEWER
Definition: d3d8caps.h:185
#define D3DPTEXTURECAPS_PROJECTED
Definition: d3d8caps.h:120
#define D3DPRASTERCAPS_WBUFFER
Definition: d3d8caps.h:83
#define D3DPBLENDCAPS_DESTCOLOR
Definition: d3d8caps.h:104
#define D3DPMISCCAPS_CULLNONE
Definition: d3d8caps.h:58
#define D3DPTFILTERCAPS_MAGFAFLATCUBIC
Definition: d3d8caps.h:136
#define D3DPTFILTERCAPS_MIPFLINEAR
Definition: d3d8caps.h:132
#define D3DPMISCCAPS_CLIPTLVERTS
Definition: d3d8caps.h:63
#define D3DPMISCCAPS_CULLCW
Definition: d3d8caps.h:59
#define D3DPBLENDCAPS_INVSRCCOLOR
Definition: d3d8caps.h:99
#define D3DPBLENDCAPS_ZERO
Definition: d3d8caps.h:96
#define D3DCAPS2_CANRENDERWINDOWED
Definition: d3d8caps.h:21
#define D3DPRASTERCAPS_STRETCHBLTMULTISAMPLE
Definition: d3d8caps.h:87
#define D3DPTFILTERCAPS_MINFANISOTROPIC
Definition: d3d8caps.h:130
#define D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE
Definition: d3d8caps.h:117
#define D3DPBLENDCAPS_INVDESTCOLOR
Definition: d3d8caps.h:105
#define D3DPBLENDCAPS_INVDESTALPHA
Definition: d3d8caps.h:103
#define D3DVTXPCAPS_MATERIALSOURCE7
Definition: d3d8caps.h:182
#define D3DPMISCCAPS_COLORWRITEENABLE
Definition: d3d8caps.h:61
#define D3DPTFILTERCAPS_MINFLINEAR
Definition: d3d8caps.h:129
#define D3DPTEXTURECAPS_SQUAREONLY
Definition: d3d8caps.h:116
#define D3DPTFILTERCAPS_MAGFANISOTROPIC
Definition: d3d8caps.h:135
#define D3DPTEXTURECAPS_ALPHAPALETTE
Definition: d3d8caps.h:118
#define D3DPMISCCAPS_NULLREFERENCE
Definition: d3d8caps.h:66
#define D3DPRASTERCAPS_ZBUFFERLESSHSR
Definition: d3d8caps.h:80
#define D3DPBLENDCAPS_SRCALPHASAT
Definition: d3d8caps.h:106
#define D3DPBLENDCAPS_BOTHSRCALPHA
Definition: d3d8caps.h:107
#define D3DPMISCCAPS_CLIPPLANESCALEDPOINTS
Definition: d3d8caps.h:62
#define D3DPRASTERCAPS_WFOG
Definition: d3d8caps.h:84
#define D3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD
Definition: d3d8caps.h:27
#define D3DVTXPCAPS_NO_VSDT_UBYTE4
Definition: d3d8caps.h:187
#define D3DPTEXTURECAPS_ALPHA
Definition: d3d8caps.h:115
#define D3DPMISCCAPS_BLENDOP
Definition: d3d8caps.h:65
#define D3DPMISCCAPS_CULLCCW
Definition: d3d8caps.h:60
#define D3DPMISCCAPS_LINEPATTERNREP
Definition: d3d8caps.h:57
#define D3DPTEXTURECAPS_VOLUMEMAP
Definition: d3d8caps.h:122
#define D3DPTEXTURECAPS_VOLUMEMAP_POW2
Definition: d3d8caps.h:127
#define D3DPRESENT_INTERVAL_IMMEDIATE
Definition: d3d8caps.h:33
#define D3DPRASTERCAPS_ANISOTROPY
Definition: d3d8caps.h:82
#define D3DVTXPCAPS_DIRECTIONALLIGHTS
Definition: d3d8caps.h:183
#define D3DPRASTERCAPS_COLORPERSPECTIVE
Definition: d3d8caps.h:86
#define D3DPBLENDCAPS_INVSRCALPHA
Definition: d3d8caps.h:101
#define D3DCAPS2_CANCALIBRATEGAMMA
Definition: d3d8caps.h:22
#define D3DPRASTERCAPS_ZFOG
Definition: d3d8caps.h:85
#define D3DPBLENDCAPS_DESTALPHA
Definition: d3d8caps.h:102
#define D3DPTFILTERCAPS_MAGFGAUSSIANCUBIC
Definition: d3d8caps.h:137
#define D3DPTEXTURECAPS_NONPOW2CONDITIONAL
Definition: d3d8caps.h:119
#define D3DPRESENT_INTERVAL_ONE
Definition: d3d8caps.h:29
#define D3DCAPS3_RESERVED
Definition: d3d8caps.h:26
#define D3DPRASTERCAPS_PAT
Definition: d3d8caps.h:73
#define D3DPRASTERCAPS_FOGRANGE
Definition: d3d8caps.h:81
#define D3DPTEXTURECAPS_PERSPECTIVE
Definition: d3d8caps.h:113
#define D3DPBLENDCAPS_SRCALPHA
Definition: d3d8caps.h:100
#define D3DVTXPCAPS_TWEENING
Definition: d3d8caps.h:186
#define D3DPBLENDCAPS_ONE
Definition: d3d8caps.h:97
#define D3DPRASTERCAPS_FOGVERTEX
Definition: d3d8caps.h:75
#define D3DPMISCCAPS_TSSARGTEMP
Definition: d3d8caps.h:64
#define D3DPTFILTERCAPS_MAGFLINEAR
Definition: d3d8caps.h:134
#define D3DCAPS2_NO2DDURING3DSCENE
Definition: d3d8caps.h:19
#define D3DPTFILTERCAPS_MINFPOINT
Definition: d3d8caps.h:128
#define D3DPTEXTURECAPS_CUBEMAP
Definition: d3d8caps.h:121
#define D3DVTXPCAPS_TEXGEN
Definition: d3d8caps.h:181
#define D3DCAPS2_DYNAMICTEXTURES
Definition: d3d8caps.h:25
#define D3DPBLENDCAPS_BOTHINVSRCALPHA
Definition: d3d8caps.h:108
#define D3DPRASTERCAPS_FOGTABLE
Definition: d3d8caps.h:76
#define D3DCAPS2_CANMANAGERESOURCE
Definition: d3d8caps.h:24
#define D3DPTEXTURECAPS_MIPCUBEMAP
Definition: d3d8caps.h:125
#define D3DPTFILTERCAPS_MIPFPOINT
Definition: d3d8caps.h:131
#define D3DPMISCCAPS_MASKZ
Definition: d3d8caps.h:56
#define D3DPRASTERCAPS_ZTEST
Definition: d3d8caps.h:74
#define D3DVTXPCAPS_POSITIONALLIGHTS
Definition: d3d8caps.h:184
#define D3DPRASTERCAPS_ZBIAS
Definition: d3d8caps.h:79
#define D3DCAPS2_FULLSCREENGAMMA
Definition: d3d8caps.h:20
#define D3DPTEXTURECAPS_MIPMAP
Definition: d3d8caps.h:123
#define D3DPTEXTURECAPS_POW2
Definition: d3d8caps.h:114
#define D3DPTFILTERCAPS_MAGFPOINT
Definition: d3d8caps.h:133
#define D3DPRASTERCAPS_MIPMAPLODBIAS
Definition: d3d8caps.h:78
#define D3DPTEXTURECAPS_MIPVOLUMEMAP
Definition: d3d8caps.h:124
#define D3DPRASTERCAPS_DITHER
Definition: d3d8caps.h:72
if(dx< 0)
Definition: linetemp.h:194
#define min(a, b)
Definition: monoChain.cc:55
DWORD PresentationIntervals
Definition: d3d8caps.h:196
DWORD MaxVertexIndex
Definition: d3d8caps.h:237
DWORD PixelShaderVersion
Definition: d3d8caps.h:242
UINT AdapterOrdinal
Definition: d3d8caps.h:192
DWORD CursorCaps
Definition: d3d8caps.h:197
DWORD MaxTextureAspectRatio
Definition: d3d8caps.h:217
DWORD DestBlendCaps
Definition: d3d8caps.h:203
DWORD MaxPrimitiveCount
Definition: d3d8caps.h:236
DWORD LineCaps
Definition: d3d8caps.h:212
DWORD TextureAddressCaps
Definition: d3d8caps.h:210
DWORD MaxTextureWidth
Definition: d3d8caps.h:213
DWORD MaxAnisotropy
Definition: d3d8caps.h:218
DWORD TextureOpCaps
Definition: d3d8caps.h:227
DWORD VolumeTextureAddressCaps
Definition: d3d8caps.h:211
DWORD RasterCaps
Definition: d3d8caps.h:200
D3DDEVTYPE DeviceType
Definition: d3d8caps.h:191
DWORD MaxTextureRepeat
Definition: d3d8caps.h:216
DWORD ZCmpCaps
Definition: d3d8caps.h:201
DWORD MaxTextureHeight
Definition: d3d8caps.h:214
DWORD MaxStreams
Definition: d3d8caps.h:238
DWORD Caps3
Definition: d3d8caps.h:195
DWORD StencilCaps
Definition: d3d8caps.h:225
DWORD Caps2
Definition: d3d8caps.h:194
float MaxPointSize
Definition: d3d8caps.h:235
float GuardBandBottom
Definition: d3d8caps.h:223
float MaxVertexW
Definition: d3d8caps.h:219
DWORD MaxVertexShaderConst
Definition: d3d8caps.h:241
DWORD VertexProcessingCaps
Definition: d3d8caps.h:230
DWORD FVFCaps
Definition: d3d8caps.h:226
DWORD VertexShaderVersion
Definition: d3d8caps.h:240
DWORD Caps
Definition: d3d8caps.h:193
DWORD MaxSimultaneousTextures
Definition: d3d8caps.h:229
DWORD MaxTextureBlendStages
Definition: d3d8caps.h:228
DWORD MaxVolumeExtent
Definition: d3d8caps.h:215
DWORD TextureCaps
Definition: d3d8caps.h:206
DWORD DevCaps
Definition: d3d8caps.h:198
float ExtentsAdjust
Definition: d3d8caps.h:224
DWORD TextureFilterCaps
Definition: d3d8caps.h:207
DWORD AlphaCmpCaps
Definition: d3d8caps.h:204
DWORD MaxActiveLights
Definition: d3d8caps.h:231
DWORD PrimitiveMiscCaps
Definition: d3d8caps.h:199
DWORD ShadeCaps
Definition: d3d8caps.h:205
DWORD CubeTextureFilterCaps
Definition: d3d8caps.h:208
DWORD MaxStreamStride
Definition: d3d8caps.h:239
DWORD SrcBlendCaps
Definition: d3d8caps.h:202
float GuardBandTop
Definition: d3d8caps.h:221
float MaxPixelShaderValue
Definition: d3d8caps.h:243
float GuardBandRight
Definition: d3d8caps.h:222
float GuardBandLeft
Definition: d3d8caps.h:220
DWORD VolumeTextureFilterCaps
Definition: d3d8caps.h:209
DWORD MaxVertexBlendMatrices
Definition: d3d8caps.h:233
DWORD MaxUserClipPlanes
Definition: d3d8caps.h:232
DWORD MaxVertexBlendMatrixIndex
Definition: d3d8caps.h:234
DWORD MaxVertexBlendMatrices
Definition: wined3d.h:1967
DWORD MaxTextureBlendStages
Definition: wined3d.h:1961
DWORD VolumeTextureAddressCaps
Definition: wined3d.h:1940
float GuardBandTop
Definition: wined3d.h:1952
float PixelShader1xMaxValue
Definition: wined3d.h:1981
DWORD FVFCaps
Definition: wined3d.h:1959
DWORD PrimitiveMiscCaps
Definition: wined3d.h:1928
DWORD MaxVertexBlendMatrixIndex
Definition: wined3d.h:1968
DWORD VertexProcessingCaps
Definition: wined3d.h:1964
DWORD TextureAddressCaps
Definition: wined3d.h:1939
DWORD TextureCaps
Definition: wined3d.h:1935
DWORD ShadeCaps
Definition: wined3d.h:1934
DWORD TextureOpCaps
Definition: wined3d.h:1960
DWORD MaxTextureRepeat
Definition: wined3d.h:1946
DWORD MaxAnisotropy
Definition: wined3d.h:1948
DWORD MaxVolumeExtent
Definition: wined3d.h:1945
float ExtentsAdjust
Definition: wined3d.h:1956
float GuardBandLeft
Definition: wined3d.h:1951
DWORD VolumeTextureFilterCaps
Definition: wined3d.h:1938
DWORD DevCaps
Definition: wined3d.h:1927
DWORD ZCmpCaps
Definition: wined3d.h:1930
DWORD MaxTextureHeight
Definition: wined3d.h:1944
DWORD CursorCaps
Definition: wined3d.h:1926
DWORD Caps
Definition: wined3d.h:1922
DWORD Caps3
Definition: wined3d.h:1924
DWORD MaxStreams
Definition: wined3d.h:1974
DWORD AlphaCmpCaps
Definition: wined3d.h:1933
DWORD DestBlendCaps
Definition: wined3d.h:1932
DWORD RasterCaps
Definition: wined3d.h:1929
float MaxVertexW
Definition: wined3d.h:1949
float MaxPointSize
Definition: wined3d.h:1970
DWORD Caps2
Definition: wined3d.h:1923
DWORD MaxPrimitiveCount
Definition: wined3d.h:1972
DWORD VertexShaderVersion
Definition: wined3d.h:1977
enum wined3d_device_type DeviceType
Definition: wined3d.h:1920
DWORD MaxTextureWidth
Definition: wined3d.h:1943
DWORD LineCaps
Definition: wined3d.h:1941
DWORD MaxUserClipPlanes
Definition: wined3d.h:1966
DWORD PixelShaderVersion
Definition: wined3d.h:1980
float GuardBandBottom
Definition: wined3d.h:1954
float GuardBandRight
Definition: wined3d.h:1953
DWORD MaxVertexIndex
Definition: wined3d.h:1973
DWORD CubeTextureFilterCaps
Definition: wined3d.h:1937
DWORD MaxTextureAspectRatio
Definition: wined3d.h:1947
DWORD MaxStreamStride
Definition: wined3d.h:1975
DWORD MaxSimultaneousTextures
Definition: wined3d.h:1962
DWORD MaxActiveLights
Definition: wined3d.h:1965
DWORD StencilCaps
Definition: wined3d.h:1957
DWORD SrcBlendCaps
Definition: wined3d.h:1931
DWORD TextureFilterCaps
Definition: wined3d.h:1936
DWORD MaxVertexShaderConst
Definition: wined3d.h:1978
#define WINED3DLINECAPS_ANTIALIAS
Definition: wined3d.h:1073
#define WINED3DPRASTERCAPS_DEPTHBIAS
Definition: wined3d.h:1222

Referenced by d3d8_device_GetDeviceCaps(), and d3d8_GetDeviceCaps().

◆ d3dformat_from_wined3dformat()

D3DFORMAT d3dformat_from_wined3dformat ( enum wined3d_format_id  format)

Definition at line 33 of file device.c.

34{
35 BYTE *c = (BYTE *)&format;
36
37 /* Don't translate FOURCC formats */
38 if (isprint(c[0]) && isprint(c[1]) && isprint(c[2]) && isprint(c[3]))
39 return (D3DFORMAT)format;
40
41 switch(format)
42 {
52 case WINED3DFMT_A8_UNORM: return D3DFMT_A8;
58 case WINED3DFMT_P8_UINT: return D3DFMT_P8;
59 case WINED3DFMT_L8_UNORM: return D3DFMT_L8;
78 default:
79 FIXME("Unhandled wined3d format %#x.\n", format);
80 return D3DFMT_UNKNOWN;
81 }
82}
#define isprint(c)
Definition: acclib.h:73
@ D3DFMT_L6V5U5
Definition: d3d8types.h:625
@ D3DFMT_A1R5G5B5
Definition: d3d8types.h:608
@ D3DFMT_A8P8
Definition: d3d8types.h:617
@ D3DFMT_D16
Definition: d3d8types.h:644
@ D3DFMT_X1R5G5B5
Definition: d3d8types.h:607
@ D3DFMT_W11V11U10
Definition: d3d8types.h:629
@ D3DFMT_D16_LOCKABLE
Definition: d3d8types.h:640
@ D3DFMT_R8G8B8
Definition: d3d8types.h:603
@ D3DFMT_R3G3B2
Definition: d3d8types.h:610
@ D3DFMT_A8L8
Definition: d3d8types.h:621
@ D3DFMT_V16U16
Definition: d3d8types.h:628
@ D3DFMT_A8R8G8B8
Definition: d3d8types.h:604
@ D3DFMT_A2B10G10R10
Definition: d3d8types.h:614
@ D3DFMT_X8L8V8U8
Definition: d3d8types.h:626
@ D3DFMT_INDEX16
Definition: d3d8types.h:649
@ D3DFMT_A8
Definition: d3d8types.h:611
@ D3DFMT_X4R4G4B4
Definition: d3d8types.h:613
@ D3DFMT_R5G6B5
Definition: d3d8types.h:606
@ D3DFMT_A8R3G3B2
Definition: d3d8types.h:612
@ D3DFMT_V8U8
Definition: d3d8types.h:624
@ D3DFMT_A4R4G4B4
Definition: d3d8types.h:609
@ D3DFMT_D24S8
Definition: d3d8types.h:643
@ D3DFMT_D32
Definition: d3d8types.h:641
@ D3DFMT_D24X8
Definition: d3d8types.h:645
@ D3DFMT_P8
Definition: d3d8types.h:618
@ D3DFMT_INDEX32
Definition: d3d8types.h:650
@ D3DFMT_UNKNOWN
Definition: d3d8types.h:601
@ D3DFMT_X8R8G8B8
Definition: d3d8types.h:605
@ D3DFMT_L8
Definition: d3d8types.h:620
@ D3DFMT_G16R16
Definition: d3d8types.h:615
@ D3DFMT_A2W10V10U10
Definition: d3d8types.h:630
@ D3DFMT_Q8W8V8U8
Definition: d3d8types.h:627
@ D3DFMT_D15S1
Definition: d3d8types.h:642
@ D3DFMT_D24X4S4
Definition: d3d8types.h:646
@ D3DFMT_A4L4
Definition: d3d8types.h:622
enum _D3DFORMAT D3DFORMAT
const GLubyte * c
Definition: glext.h:8905
@ WINED3DFMT_B2G3R3_UNORM
Definition: wined3d.h:131
@ WINED3DFMT_B4G4R4A4_UNORM
Definition: wined3d.h:130
@ WINED3DFMT_R16G16_UNORM
Definition: wined3d.h:192
@ WINED3DFMT_X8D24_UNORM
Definition: wined3d.h:151
@ WINED3DFMT_R10G10B10A2_UNORM
Definition: wined3d.h:179
@ WINED3DFMT_R16G16_SNORM
Definition: wined3d.h:194
@ WINED3DFMT_B8G8R8A8_UNORM
Definition: wined3d.h:244
@ WINED3DFMT_R8G8B8A8_SNORM
Definition: wined3d.h:188
@ WINED3DFMT_D16_LOCKABLE
Definition: wined3d.h:148
@ WINED3DFMT_R10G11B11_SNORM
Definition: wined3d.h:143
@ WINED3DFMT_S1_UINT_D15_UNORM
Definition: wined3d.h:150
@ WINED3DFMT_B2G3R3A8_UNORM
Definition: wined3d.h:132
@ WINED3DFMT_L8A8_UNORM
Definition: wined3d.h:139
@ WINED3DFMT_L4A4_UNORM
Definition: wined3d.h:140
@ WINED3DFMT_B8G8R8X8_UNORM
Definition: wined3d.h:245
@ WINED3DFMT_B5G5R5X1_UNORM
Definition: wined3d.h:129
@ WINED3DFMT_D16_UNORM
Definition: wined3d.h:212
@ WINED3DFMT_L8_UNORM
Definition: wined3d.h:138
@ WINED3DFMT_R8G8_SNORM
Definition: wined3d.h:208
@ WINED3DFMT_UNKNOWN
Definition: wined3d.h:127
@ WINED3DFMT_R5G5_SNORM_L6_UNORM
Definition: wined3d.h:141
@ WINED3DFMT_B8G8R8_UNORM
Definition: wined3d.h:128
@ WINED3DFMT_R32_UINT
Definition: wined3d.h:199
@ WINED3DFMT_B5G5R5A1_UNORM
Definition: wined3d.h:243
@ WINED3DFMT_R10G10B10_SNORM_A2_UNORM
Definition: wined3d.h:147
@ WINED3DFMT_D32_UNORM
Definition: wined3d.h:149
@ WINED3DFMT_R8G8_SNORM_L8X8_UNORM
Definition: wined3d.h:142
@ WINED3DFMT_B5G6R5_UNORM
Definition: wined3d.h:242
@ WINED3DFMT_S4X4_UINT_D24_UNORM
Definition: wined3d.h:152
@ WINED3DFMT_P8_UINT
Definition: wined3d.h:137
@ WINED3DFMT_R16_UINT
Definition: wined3d.h:214
@ WINED3DFMT_A8_UNORM
Definition: wined3d.h:222
@ WINED3DFMT_B4G4R4X4_UNORM
Definition: wined3d.h:133
@ WINED3DFMT_D24_UNORM_S8_UINT
Definition: wined3d.h:202
@ WINED3DFMT_P8_UINT_A8_UNORM
Definition: wined3d.h:136
unsigned char BYTE
Definition: xxhash.c:193

Referenced by d3d8_EnumAdapterModes(), d3d8_GetAdapterDisplayMode(), d3d8_indexbuffer_GetDesc(), d3d8_surface_GetDesc(), d3d8_texture_2d_GetLevelDesc(), d3d8_texture_3d_GetLevelDesc(), d3d8_texture_cube_GetLevelDesc(), d3d8_volume_GetDesc(), d3d9_EnumAdapterModes(), d3d9_EnumAdapterModesEx(), d3d9_GetAdapterDisplayMode(), d3d9_GetAdapterDisplayModeEx(), d3d9_indexbuffer_GetDesc(), d3d9_surface_GetDesc(), d3d9_swapchain_GetDisplayMode(), d3d9_swapchain_GetDisplayModeEx(), d3d9_texture_2d_GetLevelDesc(), d3d9_texture_3d_GetLevelDesc(), d3d9_texture_cube_GetLevelDesc(), and d3d9_volume_GetDesc().

◆ d3dmultisample_type_from_wined3d()

◆ d3dpool_from_wined3daccess()

static D3DPOOL d3dpool_from_wined3daccess ( unsigned int  access,
unsigned int  usage 
)
inlinestatic

Definition at line 315 of file d3d8_private.h.

316{
318 return D3DPOOL_MANAGED;
319
321 {
322 default:
324 return D3DPOOL_DEFAULT;
327 return D3DPOOL_SCRATCH;
328 return D3DPOOL_SYSTEMMEM;
330 return D3DPOOL_MANAGED;
331 }
332}
@ D3DPOOL_SCRATCH
Definition: d3d8types.h:712
@ D3DPOOL_DEFAULT
Definition: d3d8types.h:709
@ D3DPOOL_SYSTEMMEM
Definition: d3d8types.h:711
@ D3DPOOL_MANAGED
Definition: d3d8types.h:710
GLuint GLint GLboolean GLint GLenum access
Definition: glext.h:7866
#define WINED3D_RESOURCE_ACCESS_GPU
Definition: wined3d.h:51
#define WINED3D_RESOURCE_ACCESS_CPU
Definition: wined3d.h:52
#define WINED3DUSAGE_MANAGED
Definition: wined3d.h:938
#define WINED3DUSAGE_SCRATCH
Definition: wined3d.h:932

Referenced by d3d8_indexbuffer_GetDesc(), d3d8_surface_GetDesc(), d3d8_texture_2d_GetLevelDesc(), d3d8_texture_3d_GetLevelDesc(), d3d8_texture_cube_GetLevelDesc(), d3d8_vertexbuffer_GetDesc(), d3d8_volume_GetDesc(), d3d9_indexbuffer_GetDesc(), d3d9_surface_GetDesc(), d3d9_texture_2d_GetLevelDesc(), d3d9_texture_3d_GetLevelDesc(), d3d9_texture_cube_GetLevelDesc(), d3d9_vertexbuffer_GetDesc(), and d3d9_volume_GetDesc().

◆ d3dusage_from_wined3dusage()

static DWORD d3dusage_from_wined3dusage ( unsigned int  wined3d_usage,
unsigned int  bind_flags 
)
inlinestatic

Definition at line 305 of file d3d8_private.h.

306{
307 DWORD usage = wined3d_usage & WINED3DUSAGE_MASK;
308 if (bind_flags & WINED3D_BIND_RENDER_TARGET)
310 if (bind_flags & WINED3D_BIND_DEPTH_STENCIL)
312 return usage;
313}
#define WINED3DUSAGE_MASK
Definition: wined3d.h:930
#define WINED3D_BIND_DEPTH_STENCIL
Definition: wined3d.h:915
#define WINED3D_BIND_RENDER_TARGET
Definition: wined3d.h:914

Referenced by d3d8_surface_GetDesc(), d3d8_texture_2d_GetLevelDesc(), d3d8_texture_3d_GetLevelDesc(), d3d8_texture_cube_GetLevelDesc(), d3d8_volume_GetDesc(), d3d9_surface_GetDesc(), and d3d9_volume_GetDesc().

◆ device_init()

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 
)

Definition at line 3667 of file device.c.

3669{
3670 struct wined3d_swapchain_desc swapchain_desc;
3674 struct d3d8_swapchain *d3d_swapchain;
3675 struct wined3d_caps caps;
3676 unsigned int output_idx;
3677 HRESULT hr;
3678
3679 static const enum wined3d_feature_level feature_levels[] =
3680 {
3685 };
3686
3687 output_idx = adapter;
3688 if (output_idx >= parent->wined3d_output_count)
3689 return D3DERR_INVALIDCALL;
3690
3691 device->IDirect3DDevice8_iface.lpVtbl = &d3d8_device_vtbl;
3692 device->device_parent.ops = &d3d8_wined3d_device_parent_ops;
3693 device->adapter_ordinal = adapter;
3694 device->ref = 1;
3695 if (!(device->handle_table.entries = calloc(D3D8_INITIAL_HANDLE_TABLE_SIZE,
3696 sizeof(*device->handle_table.entries))))
3697 {
3698 ERR("Failed to allocate handle table memory.\n");
3699 return E_OUTOFMEMORY;
3700 }
3701 device->handle_table.table_size = D3D8_INITIAL_HANDLE_TABLE_SIZE;
3702
3704
3706 wined3d_output = parent->wined3d_outputs[output_idx];
3709 focus_window, flags, 4, feature_levels, ARRAY_SIZE(feature_levels),
3710 &device->device_parent, &device->wined3d_device)))
3711 {
3712 WARN("Failed to create wined3d device, hr %#lx.\n", hr);
3714 free(device->handle_table.entries);
3715 return hr;
3716 }
3717
3718 device->immediate_context = wined3d_device_get_immediate_context(device->wined3d_device);
3720 device->max_user_clip_planes = caps.MaxUserClipPlanes;
3721 device->vs_uniform_count = caps.MaxVertexShaderConst;
3722
3723 if (FAILED(hr = wined3d_stateblock_create(device->wined3d_device, NULL, WINED3D_SBT_PRIMARY, &device->state)))
3724 {
3725 ERR("Failed to create primary stateblock, hr %#lx.\n", hr);
3726 wined3d_device_decref(device->wined3d_device);
3728 return hr;
3729 }
3730 device->stateblock_state = wined3d_stateblock_get_state(device->state);
3731 device->update_state = device->state;
3732
3735
3736 if (!parameters->Windowed)
3737 {
3738 if (!focus_window)
3739 focus_window = parameters->hDeviceWindow;
3740 if (FAILED(hr = wined3d_device_acquire_focus_window(device->wined3d_device, focus_window)))
3741 {
3742 ERR("Failed to acquire focus window, hr %#lx.\n", hr);
3743 wined3d_device_decref(device->wined3d_device);
3745 free(device->handle_table.entries);
3746 return hr;
3747 }
3748 }
3749
3752
3754 {
3756 wined3d_device_decref(device->wined3d_device);
3758 free(device->handle_table.entries);
3759 return D3DERR_INVALIDCALL;
3760 }
3761 swapchain_desc.flags |= WINED3D_SWAPCHAIN_IMPLICIT;
3762
3763 if (FAILED(hr = d3d8_swapchain_create(device, &swapchain_desc,
3764 wined3dswapinterval_from_d3d(parameters->FullScreen_PresentationInterval), &d3d_swapchain)))
3765 {
3766 WARN("Failed to create implicit swapchain, hr %#lx.\n", hr);
3768 wined3d_device_decref(device->wined3d_device);
3770 free(device->handle_table.entries);
3771 return hr;
3772 }
3773
3774 wined3d_swapchain = d3d_swapchain->wined3d_swapchain;
3777
3779 !!swapchain_desc.enable_auto_depth_stencil);
3783
3785 &swapchain_desc, parameters->FullScreen_PresentationInterval);
3786
3787 device->declArraySize = 16;
3788 if (!(device->decls = malloc(device->declArraySize * sizeof(*device->decls))))
3789 {
3790 ERR("Failed to allocate FVF vertex declaration map memory.\n");
3791 hr = E_OUTOFMEMORY;
3792 goto err;
3793 }
3794
3795 device->implicit_swapchain = wined3d_swapchain;
3796
3797 device->d3d_parent = parent;
3798 IDirect3D8_AddRef(&parent->IDirect3D8_iface);
3799
3800 return D3D_OK;
3801
3802err:
3806 wined3d_device_decref(device->wined3d_device);
3808 free(device->handle_table.entries);
3809 return hr;
3810}
#define ARRAY_SIZE(A)
Definition: main.h:20
#define D3D8_INITIAL_HANDLE_TABLE_SIZE
Definition: d3d8_private.h:69
static enum wined3d_device_type wined3d_device_type_from_d3d(D3DDEVTYPE type)
Definition: d3d8_private.h:392
HRESULT d3d8_swapchain_create(struct d3d8_device *device, struct wined3d_swapchain_desc *desc, unsigned int swap_interval, struct d3d8_swapchain **swapchain)
Definition: swapchain.c:193
device_type
static enum wined3d_swap_interval wined3dswapinterval_from_d3d(DWORD interval)
Definition: device.c:239
static BOOL wined3d_swapchain_desc_from_d3d8(struct wined3d_swapchain_desc *swapchain_desc, struct wined3d_output *output, const D3DPRESENT_PARAMETERS *present_parameters)
Definition: device.c:265
static const struct wined3d_device_parent_ops d3d8_wined3d_device_parent_ops
Definition: device.c:3642
static const struct IDirect3DDevice8Vtbl d3d8_device_vtbl
Definition: device.c:3486
static void device_reset_viewport_state(struct d3d8_device *device)
Definition: device.c:559
static void setup_fpu(void)
Definition: device.c:3650
static void present_parameters_from_wined3d_swapchain_desc(D3DPRESENT_PARAMETERS *present_parameters, const struct wined3d_swapchain_desc *swapchain_desc, DWORD presentation_interval)
Definition: device.c:202
HRESULT CDECL wined3d_device_acquire_focus_window(struct wined3d_device *device, HWND window)
Definition: device.c:1133
ULONG CDECL wined3d_device_decref(struct wined3d_device *device)
Definition: device.c:251
void CDECL wined3d_device_set_multithreaded(struct wined3d_device *device)
Definition: device.c:1746
struct wined3d_device_context *CDECL wined3d_device_get_immediate_context(struct wined3d_device *device)
Definition: device.c:1969
void CDECL wined3d_device_release_focus_window(struct wined3d_device *device)
Definition: device.c:1154
r parent
Definition: btrfs.c:3010
return adapter
static D3D_DRIVER_TYPE HMODULE UINT const D3D_FEATURE_LEVEL * feature_levels
Definition: hlsl_d3d11.c:28
static BYTE parameters[]
Definition: asn.c:558
#define err(...)
#define D3DCREATE_MULTITHREADED
Definition: d3d8.h:38
#define D3DCREATE_FPU_PRESERVE
Definition: d3d8.h:37
#define IDirect3D8_AddRef(p)
Definition: d3d8.h:156
IDirect3DSwapChain8 IDirect3DSwapChain8_iface
Definition: d3d8_private.h:177
struct wined3d_swapchain * wined3d_swapchain
Definition: d3d8_private.h:179
struct wined3d_adapter *CDECL wined3d_output_get_adapter(const struct wined3d_output *output)
Definition: directx.c:1508
HRESULT CDECL wined3d_get_device_caps(const struct wined3d_adapter *adapter, enum wined3d_device_type device_type, struct wined3d_caps *caps)
Definition: directx.c:2366
HRESULT CDECL wined3d_device_create(struct wined3d *wined3d, struct wined3d_adapter *adapter, enum wined3d_device_type device_type, HWND focus_window, uint32_t flags, BYTE surface_alignment, const enum wined3d_feature_level *feature_levels, unsigned int feature_level_count, struct wined3d_device_parent *device_parent, struct wined3d_device **device)
Definition: directx.c:2777
HRESULT CDECL wined3d_stateblock_create(struct wined3d_device *device, const struct wined3d_stateblock *device_state, enum wined3d_stateblock_type type, struct wined3d_stateblock **stateblock)
Definition: stateblock.c:2508
const struct wined3d_stateblock_state *CDECL wined3d_stateblock_get_state(const struct wined3d_stateblock *stateblock)
Definition: stateblock.c:2064
void CDECL wined3d_stateblock_set_render_state(struct wined3d_stateblock *stateblock, enum wined3d_render_state state, unsigned int value)
Definition: stateblock.c:1623
ULONG CDECL wined3d_swapchain_decref(struct wined3d_swapchain *swapchain)
Definition: swapchain.c:144
ULONG CDECL wined3d_swapchain_incref(struct wined3d_swapchain *swapchain)
Definition: swapchain.c:135
@ WINED3D_SBT_PRIMARY
Definition: wined3d.h:791
@ WINED3D_RS_ZENABLE
Definition: wined3d.h:293
@ WINED3D_RS_POINTSIZE_MIN
Definition: wined3d.h:363
#define WINED3D_BIND_VERTEX_BUFFER
Definition: wined3d.h:909
static void wined3d_streaming_buffer_init(struct wined3d_streaming_buffer *buffer, unsigned int bind_flags)
Definition: wined3d.h:2937
wined3d_feature_level
Definition: wined3d.h:98
@ WINED3D_FEATURE_LEVEL_8
Definition: wined3d.h:103
@ WINED3D_FEATURE_LEVEL_7
Definition: wined3d.h:102
@ WINED3D_FEATURE_LEVEL_6
Definition: wined3d.h:101
@ WINED3D_FEATURE_LEVEL_5
Definition: wined3d.h:100
#define WINED3D_BIND_INDEX_BUFFER
Definition: wined3d.h:910

Referenced by d3d8_CreateDevice(), d3d9_CreateDevice(), and d3d9_CreateDeviceEx().

◆ impl_from_IDirect3DDevice8()

static struct d3d8_device * impl_from_IDirect3DDevice8 ( IDirect3DDevice8 *  iface)
inlinestatic

Definition at line 144 of file d3d8_private.h.

145{
146 return CONTAINING_RECORD(iface, struct d3d8_device, IDirect3DDevice8_iface);
147}
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260

Referenced by d3d8_device_AddRef(), d3d8_device_ApplyStateBlock(), d3d8_device_BeginScene(), d3d8_device_BeginStateBlock(), d3d8_device_CaptureStateBlock(), d3d8_device_Clear(), d3d8_device_CopyRects(), d3d8_device_CreateAdditionalSwapChain(), d3d8_device_CreateCubeTexture(), d3d8_device_CreateDepthStencilSurface(), d3d8_device_CreateImageSurface(), d3d8_device_CreateIndexBuffer(), d3d8_device_CreatePixelShader(), d3d8_device_CreateRenderTarget(), d3d8_device_CreateStateBlock(), d3d8_device_CreateTexture(), d3d8_device_CreateVertexBuffer(), d3d8_device_CreateVertexShader(), d3d8_device_CreateVolumeTexture(), 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_GetDirect3D(), 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_Present(), 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_TestCooperativeLevel(), d3d8_device_UpdateTexture(), d3d8_device_ValidateDevice(), d3d8_surface_get_device(), and d3d8_swapchain_Present().

◆ indexbuffer_init()

HRESULT indexbuffer_init ( struct d3d8_indexbuffer *  buffer,
struct d3d8_device *  device,
UINT  size,
DWORD  usage,
D3DFORMAT  format,
D3DPOOL  pool 
)

Definition at line 605 of file buffer.c.

607{
609 HRESULT hr;
610
611 if (pool == D3DPOOL_SCRATCH)
612 return D3DERR_INVALIDCALL;
613
614 /* In d3d8, buffers can't be used as rendertarget or depth/stencil buffer. */
616 return D3DERR_INVALIDCALL;
617
618 desc.byte_width = size;
620 desc.bind_flags = 0;
622 /* Buffers are always readable. */
623 if (pool != D3DPOOL_DEFAULT)
625 desc.misc_flags = 0;
626 desc.structure_byte_stride = 0;
627
629 desc.bind_flags = WINED3D_BIND_INDEX_BUFFER;
630
631 buffer->IDirect3DIndexBuffer8_iface.lpVtbl = &d3d8_indexbuffer_vtbl;
632 d3d8_resource_init(&buffer->resource);
634 buffer->usage = usage;
635 buffer->sysmem = !(desc.access & WINED3D_RESOURCE_ACCESS_GPU);
636
638 hr = wined3d_buffer_create(device->wined3d_device, &desc, NULL, buffer,
641 if (FAILED(hr))
642 {
643 WARN("Failed to create wined3d buffer, hr %#lx.\n", hr);
644 return hr;
645 }
646
647 buffer->parent_device = &device->IDirect3DDevice8_iface;
648 IDirect3DDevice8_AddRef(buffer->parent_device);
649
650 return D3D_OK;
651}
static unsigned int map_access_from_usage(unsigned int usage)
Definition: d3d8_private.h:334
static const IDirect3DIndexBuffer8Vtbl d3d8_indexbuffer_vtbl
Definition: buffer.c:571
static const struct wined3d_parent_ops d3d8_indexbuffer_wined3d_parent_ops
Definition: buffer.c:600
HRESULT CDECL wined3d_buffer_create(struct wined3d_device *device, const struct wined3d_buffer_desc *desc, const struct wined3d_sub_resource_data *data, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_buffer **buffer)
Definition: buffer.c:1329
GLuint buffer
Definition: glext.h:5915
#define IDirect3DDevice8_AddRef(p)
Definition: d3d8.h:943
#define WINED3D_RESOURCE_ACCESS_MAP_R
Definition: wined3d.h:53
#define WINED3DUSAGE_STATICDECL
Definition: wined3d.h:936
#define WINED3D_RESOURCE_ACCESS_MAP_W
Definition: wined3d.h:54

Referenced by d3d8_device_CreateIndexBuffer(), and d3d9_device_CreateIndexBuffer().

◆ load_local_constants()

void load_local_constants ( const DWORD *  d3d8_elements,
struct wined3d_shader *  wined3d_vertex_shader 
)

Definition at line 146 of file vertexdeclaration.c.

147{
148 const DWORD *token = d3d8_elements;
149
150 while (*token != D3DVSD_END())
151 {
153 {
156 HRESULT hr;
157
158 if (TRACE_ON(d3d8))
159 {
160 DWORD i;
161 for (i = 0; i < count; ++i)
162 {
163 TRACE("c[%lu] = (%8f, %8f, %8f, %8f)\n",
164 constant_idx,
165 *(const float *)(token + i * 4 + 1),
166 *(const float *)(token + i * 4 + 2),
167 *(const float *)(token + i * 4 + 3),
168 *(const float *)(token + i * 4 + 4));
169 }
170 }
172 constant_idx, (const float *)token + 1, count);
173 if (FAILED(hr)) ERR("Failed setting shader constants\n");
174 }
175
177 }
178}
size_t parse_token(const DWORD *pToken)
#define D3DVSD_CONSTADDRESSSHIFT
Definition: d3d8types.h:240
#define D3DVSD_CONSTCOUNTSHIFT
Definition: d3d8types.h:249
#define D3DVSD_CONSTCOUNTMASK
Definition: d3d8types.h:263
#define D3DVSD_CONSTADDRESSMASK
Definition: d3d8types.h:254
@ D3DVSD_TOKEN_CONSTMEM
Definition: d3d8types.h:169
HRESULT CDECL wined3d_shader_set_local_constants_float(struct wined3d_shader *shader, UINT start_idx, const float *src_data, UINT count)
Definition: shader.c:2637
#define TRACE_ON(x)
Definition: compat.h:75
GLuint GLuint GLsizei count
Definition: gl.h:1545

Referenced by d3d8_vertex_shader_init().

◆ map_access_from_usage()

static unsigned int map_access_from_usage ( unsigned int  usage)
inlinestatic

◆ parse_token()

size_t parse_token ( const DWORD *  pToken)

Definition at line 72 of file vertexdeclaration.c.

73{
74 const DWORD token = *pToken;
75 size_t tokenlen = 1;
76
77 switch ((token & D3DVSD_TOKENTYPEMASK) >> D3DVSD_TOKENTYPESHIFT) { /* maybe a macro to inverse ... */
79 TRACE(" 0x%08lx NOP()\n", token);
80 break;
81
84 {
85 TRACE(" 0x%08lx STREAM_TESS()\n", token);
86 } else {
87 TRACE(" 0x%08lx STREAM(%lu)\n", token, ((token & D3DVSD_STREAMNUMBERMASK) >> D3DVSD_STREAMNUMBERSHIFT));
88 }
89 break;
90
92 if (token & 0x10000000)
93 {
94 TRACE(" 0x%08lx SKIP(%lu)\n", token, ((token & D3DVSD_SKIPCOUNTMASK) >> D3DVSD_SKIPCOUNTSHIFT));
95 } else {
98 TRACE(" 0x%08lx REG(%s, %s)\n", token, debug_d3dvsde_register(reg), debug_d3dvsdt_type(type));
99 }
100 break;
101
103 if (token & 0x10000000)
104 {
107 TRACE(" 0x%08lx TESSUV(%s) as %s\n", token, debug_d3dvsde_register(reg), debug_d3dvsdt_type(type));
108 } else {
112 TRACE(" 0x%08lx TESSNORMAL(%s, %s) as %s\n", token, debug_d3dvsde_register(regin),
114 }
115 break;
116
118 {
120 tokenlen = (4 * count) + 1;
121 }
122 break;
123
124 case D3DVSD_TOKEN_EXT:
125 {
128 TRACE(" 0x%08lx EXT(%lu, %lu)\n", token, count, extinfo);
129 /* todo ... print extension */
130 tokenlen = count + 1;
131 }
132 break;
133
134 case D3DVSD_TOKEN_END:
135 TRACE(" 0x%08lx END()\n", token);
136 break;
137
138 default:
139 TRACE(" 0x%08lx UNKNOWN\n", token);
140 /* arg error */
141 }
142
143 return tokenlen;
144}
static const char * debug_d3dvsde_register(D3DVSDE_REGISTER d3dvsde_register)
static const char * debug_d3dvsdt_type(D3DVSDT_TYPE d3dvsdt_type)
#define D3DVSD_EXTINFOSHIFT
Definition: d3d8types.h:241
#define D3DVSD_SKIPCOUNTSHIFT
Definition: d3d8types.h:246
#define D3DVSD_EXTINFOMASK
Definition: d3d8types.h:255
#define D3DVSD_VERTEXREGINSHIFT
Definition: d3d8types.h:247
#define D3DVSD_SKIPCOUNTMASK
Definition: d3d8types.h:260
#define D3DVSD_VERTEXREGINMASK
Definition: d3d8types.h:262
#define D3DVSD_STREAMNUMBERMASK
Definition: d3d8types.h:256
#define D3DVSD_STREAMTESSMASK
Definition: d3d8types.h:265
@ D3DVSD_TOKEN_STREAM
Definition: d3d8types.h:166
@ D3DVSD_TOKEN_TESSELLATOR
Definition: d3d8types.h:168
@ D3DVSD_TOKEN_EXT
Definition: d3d8types.h:170
@ D3DVSD_TOKEN_END
Definition: d3d8types.h:172
@ D3DVSD_TOKEN_NOP
Definition: d3d8types.h:165
#define D3DVSD_STREAMNUMBERSHIFT
Definition: d3d8types.h:242

Referenced by convert_to_wined3d_declaration(), d3d8_vertex_shader_init(), and load_local_constants().

◆ unsafe_impl_from_IDirect3DBaseTexture8()

struct d3d8_texture * unsafe_impl_from_IDirect3DBaseTexture8 ( IDirect3DBaseTexture8 *  iface)

Definition at line 1017 of file texture.c.

1018{
1019 if (!iface)
1020 return NULL;
1021
1022 /* SetTexture() in particular doesn't do a lot of validation on the pointer
1023 * that gets passed in, and passing an invalid pointer works as long as the
1024 * application doesn't try to actually render anything with it, so we print
1025 * a WARN and return NULL instead of having the usual assert() here.
1026 * One application affected by this is Fishdom 2. */
1027 if (iface->lpVtbl != (const IDirect3DBaseTexture8Vtbl *)&Direct3DTexture8_Vtbl
1028 && iface->lpVtbl != (const IDirect3DBaseTexture8Vtbl *)&Direct3DCubeTexture8_Vtbl
1029 && iface->lpVtbl != (const IDirect3DBaseTexture8Vtbl *)&Direct3DVolumeTexture8_Vtbl)
1030 {
1031 WARN("%p is not a valid IDirect3DBaseTexture8 interface.\n", iface);
1032 return NULL;
1033 }
1034
1035 return CONTAINING_RECORD(iface, struct d3d8_texture, IDirect3DBaseTexture8_iface);
1036}

Referenced by d3d8_device_SetTexture(), d3d8_device_UpdateTexture(), and d3d8_surface_create().

◆ unsafe_impl_from_IDirect3DIndexBuffer8()

struct d3d8_indexbuffer * unsafe_impl_from_IDirect3DIndexBuffer8 ( IDirect3DIndexBuffer8 *  iface)

Definition at line 653 of file buffer.c.

654{
655 if (!iface)
656 return NULL;
657 assert(iface->lpVtbl == &d3d8_indexbuffer_vtbl);
658
660}
static struct d3d8_indexbuffer * impl_from_IDirect3DIndexBuffer8(IDirect3DIndexBuffer8 *iface)
Definition: buffer.c:354
#define assert(_expr)
Definition: assert.h:32

Referenced by d3d8_device_SetIndices().

◆ unsafe_impl_from_IDirect3DSurface8()

struct d3d8_surface * unsafe_impl_from_IDirect3DSurface8 ( IDirect3DSurface8 *  iface)

Definition at line 412 of file surface.c.

413{
414 if (!iface)
415 return NULL;
416 assert(iface->lpVtbl == &d3d8_surface_vtbl);
417
418 return impl_from_IDirect3DSurface8(iface);
419}
static struct d3d8_surface * impl_from_IDirect3DSurface8(IDirect3DSurface8 *iface)
Definition: surface.c:25

Referenced by d3d8_device_CopyRects(), d3d8_device_GetFrontBuffer(), d3d8_device_SetCursorProperties(), and d3d8_device_SetRenderTarget().

◆ unsafe_impl_from_IDirect3DVertexBuffer8()

struct d3d8_vertexbuffer * unsafe_impl_from_IDirect3DVertexBuffer8 ( IDirect3DVertexBuffer8 *  iface)

Definition at line 345 of file buffer.c.

346{
347 if (!iface)
348 return NULL;
349 assert(iface->lpVtbl == &Direct3DVertexBuffer8_Vtbl);
350
352}
static struct d3d8_vertexbuffer * impl_from_IDirect3DVertexBuffer8(IDirect3DVertexBuffer8 *iface)
Definition: buffer.c:23
static const IDirect3DVertexBuffer8Vtbl Direct3DVertexBuffer8_Vtbl
Definition: buffer.c:248

Referenced by d3d8_device_ProcessVertices(), and d3d8_device_SetStreamSource().

◆ vertexbuffer_init()

HRESULT vertexbuffer_init ( struct d3d8_vertexbuffer *  buffer,
struct d3d8_device *  device,
UINT  size,
DWORD  usage,
DWORD  fvf,
D3DPOOL  pool 
)

Definition at line 284 of file buffer.c.

286{
287 const struct wined3d_parent_ops *parent_ops = &d3d8_null_wined3d_parent_ops;
289 HRESULT hr;
290
291 if (pool == D3DPOOL_SCRATCH)
292 {
293 WARN("Vertex buffer with D3DPOOL_SCRATCH requested.\n");
294 return D3DERR_INVALIDCALL;
295 }
296
297 /* In d3d8, buffers can't be used as rendertarget or depth/stencil buffer. */
299 return D3DERR_INVALIDCALL;
300
301 buffer->IDirect3DVertexBuffer8_iface.lpVtbl = &Direct3DVertexBuffer8_Vtbl;
302 d3d8_resource_init(&buffer->resource);
303 buffer->fvf = fvf;
304 buffer->usage = usage;
305
306 desc.byte_width = size;
308 desc.bind_flags = 0;
310 /* Buffers are always readable. */
311 if (pool != D3DPOOL_DEFAULT)
313 desc.misc_flags = 0;
314 desc.structure_byte_stride = 0;
315
317 {
318 desc.bind_flags = WINED3D_BIND_VERTEX_BUFFER;
320 }
321
323 hr = wined3d_buffer_create(device->wined3d_device, &desc, NULL, buffer, parent_ops, &buffer->wined3d_buffer);
324 if (SUCCEEDED(hr) && !(desc.access & WINED3D_RESOURCE_ACCESS_GPU))
325 {
326 desc.bind_flags = WINED3D_BIND_VERTEX_BUFFER;
328 if (FAILED(hr = wined3d_buffer_create(device->wined3d_device, &desc, NULL, buffer,
330 wined3d_buffer_decref(buffer->wined3d_buffer);
331 }
333 if (FAILED(hr))
334 {
335 WARN("Failed to create wined3d buffer, hr %#lx.\n", hr);
336 return hr;
337 }
338
339 buffer->parent_device = &device->IDirect3DDevice8_iface;
340 IDirect3DDevice8_AddRef(buffer->parent_device);
341
342 return D3D_OK;
343}
const struct wined3d_parent_ops d3d8_null_wined3d_parent_ops
Definition: device.c:28
static const struct wined3d_parent_ops d3d8_vertexbuffer_wined3d_parent_ops
Definition: buffer.c:279
ULONG CDECL wined3d_buffer_decref(struct wined3d_buffer *buffer)
Definition: buffer.c:459

Referenced by d3d8_device_CreateVertexBuffer(), and d3d9_device_CreateVertexBuffer().

◆ volume_init()

void volume_init ( struct d3d8_volume *  volume,
struct wined3d_texture *  wined3d_texture,
unsigned int  sub_resource_idx,
const struct wined3d_parent_ops **  parent_ops 
)

Definition at line 203 of file volume.c.

205{
206 volume->IDirect3DVolume8_iface.lpVtbl = &d3d8_volume_vtbl;
207 d3d8_resource_init(&volume->resource);
208 volume->resource.refcount = 0;
210 volume->wined3d_texture = wined3d_texture;
211 volume->sub_resource_idx = sub_resource_idx;
212
213 *parent_ops = &d3d8_volume_wined3d_parent_ops;
214}
static const IDirect3DVolume8Vtbl d3d8_volume_vtbl
Definition: volume.c:174
static const struct wined3d_parent_ops d3d8_volume_wined3d_parent_ops
Definition: volume.c:198
void *CDECL wined3d_texture_get_parent(const struct wined3d_texture *texture)
Definition: texture.c:1690

Referenced by device_parent_texture_sub_resource_created().

◆ wined3d_bind_flags_from_d3d8_usage()

static unsigned int wined3d_bind_flags_from_d3d8_usage ( DWORD  usage)
inlinestatic

Definition at line 375 of file d3d8_private.h.

376{
377 unsigned int bind_flags = 0;
378
380 bind_flags |= WINED3D_BIND_RENDER_TARGET;
382 bind_flags |= WINED3D_BIND_DEPTH_STENCIL;
383
384 return bind_flags;
385}

Referenced by d3d8_CheckDeviceFormat(), d3d8_texture_2d_init(), d3d8_texture_3d_init(), and d3d8_texture_cube_init().

◆ wined3d_device_type_from_d3d()

◆ wined3d_usage_from_d3d()

◆ wined3daccess_from_d3dpool()

static unsigned int wined3daccess_from_d3dpool ( D3DPOOL  pool,
unsigned int  usage 
)
inlinestatic

◆ wined3dformat_from_d3dformat()

enum wined3d_format_id wined3dformat_from_d3dformat ( D3DFORMAT  format)

Definition at line 84 of file device.c.

85{
86 BYTE *c = (BYTE *)&format;
87
88 /* Don't translate FOURCC formats */
89 if (isprint(c[0]) && isprint(c[1]) && isprint(c[2]) && isprint(c[3]))
90 return (enum wined3d_format_id)format;
91
92 switch(format)
93 {
103 case D3DFMT_A8: return WINED3DFMT_A8_UNORM;
109 case D3DFMT_P8: return WINED3DFMT_P8_UINT;
110 case D3DFMT_L8: return WINED3DFMT_L8_UNORM;
121 case D3DFMT_D32: return WINED3DFMT_D32_UNORM;
126 case D3DFMT_D16: return WINED3DFMT_D16_UNORM;
129 default:
130 FIXME("Unhandled D3DFORMAT %#x.\n", format);
131 return WINED3DFMT_UNKNOWN;
132 }
133}
wined3d_format_id
Definition: wined3d.h:126

Referenced by d3d8_CheckDepthStencilMatch(), d3d8_CheckDeviceFormat(), d3d8_CheckDeviceMultiSampleType(), d3d8_CheckDeviceType(), d3d8_texture_2d_init(), d3d8_texture_3d_init(), d3d8_texture_cube_init(), d3d9_CheckDepthStencilMatch(), d3d9_CheckDeviceFormat(), d3d9_CheckDeviceFormatConversion(), d3d9_CheckDeviceMultiSampleType(), d3d9_CheckDeviceType(), d3d9_EnumAdapterModes(), d3d9_EnumAdapterModesEx(), d3d9_GetAdapterModeCount(), d3d9_GetAdapterModeCountEx(), d3d9_texture_2d_init(), d3d9_texture_3d_init(), d3d9_texture_cube_init(), and indexbuffer_init().

◆ wined3dmapflags_from_d3dmapflags()

unsigned int wined3dmapflags_from_d3dmapflags ( unsigned int  flags,
unsigned int  usage 
)

Definition at line 135 of file device.c.

136{
137 static const unsigned int handled = D3DLOCK_NOSYSLOCK
141 unsigned int wined3d_flags;
142
143 wined3d_flags = flags & handled;
145 wined3d_flags |= WINED3D_MAP_READ;
146 if (!(flags & D3DLOCK_READONLY))
147 wined3d_flags |= WINED3D_MAP_WRITE;
148 if (!(wined3d_flags & (WINED3D_MAP_READ | WINED3D_MAP_WRITE)))
149 wined3d_flags |= WINED3D_MAP_WRITE;
150 flags &= ~(handled | D3DLOCK_READONLY);
151
152 if (flags)
153 FIXME("Unhandled flags %#x.\n", flags);
154
155 return wined3d_flags;
156}
#define D3DLOCK_DISCARD
Definition: d3d8types.h:72
#define D3DLOCK_NO_DIRTY_UPDATE
Definition: d3d8types.h:73
#define D3DLOCK_NOOVERWRITE
Definition: d3d8types.h:71
#define D3DLOCK_NOSYSLOCK
Definition: d3d8types.h:70
#define D3DLOCK_READONLY
Definition: d3d8types.h:69
#define WINED3D_MAP_READ
Definition: wined3d.h:957
#define WINED3D_MAP_WRITE
Definition: wined3d.h:956

Referenced by d3d8_indexbuffer_Lock(), d3d8_surface_LockRect(), d3d8_vertexbuffer_Lock(), d3d8_volume_LockBox(), d3d9_indexbuffer_Lock(), d3d9_surface_LockRect(), d3d9_vertexbuffer_Lock(), and d3d9_volume_LockBox().

Variable Documentation

◆ d3d8_null_wined3d_parent_ops

const struct wined3d_parent_ops d3d8_null_wined3d_parent_ops
extern

Definition at line 28 of file device.c.

Referenced by d3d8_device_create_surface(), d3d8_texture_init(), and vertexbuffer_init().