ReactOS 0.4.15-dev-7834-g00c4b3d
d3drm.c File Reference
#include "d3drm_private.h"
Include dependency graph for d3drm.c:

Go to the source code of this file.

Classes

struct  d3drm
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (d3drm)
 
static const charget_IID_string (const GUID *guid)
 
static HRESULT d3drm_create_texture_object (void **object, IDirect3DRM *d3drm)
 
static HRESULT d3drm_create_device_object (void **object, IDirect3DRM *d3drm)
 
static HRESULT d3drm_create_viewport_object (void **object, IDirect3DRM *d3drm)
 
static HRESULT d3drm_create_face_object (void **object, IDirect3DRM *d3drm)
 
static HRESULT d3drm_create_mesh_builder_object (void **object, IDirect3DRM *d3drm)
 
static HRESULT d3drm_create_frame_object (void **object, IDirect3DRM *d3drm)
 
static HRESULT d3drm_create_light_object (void **object, IDirect3DRM *d3drm)
 
static HRESULT d3drm_create_material_object (void **object, IDirect3DRM *d3drm)
 
static HRESULT d3drm_create_mesh_object (void **object, IDirect3DRM *d3drm)
 
static HRESULT d3drm_create_animation_object (void **object, IDirect3DRM *d3drm)
 
static HRESULT d3drm_create_wrap_object (void **object, IDirect3DRM *d3drm)
 
static struct d3drmimpl_from_IDirect3DRM (IDirect3DRM *iface)
 
static struct d3drmimpl_from_IDirect3DRM2 (IDirect3DRM2 *iface)
 
static struct d3drmimpl_from_IDirect3DRM3 (IDirect3DRM3 *iface)
 
static void d3drm_destroy (struct d3drm *d3drm)
 
static HRESULT WINAPI d3drm1_QueryInterface (IDirect3DRM *iface, REFIID riid, void **out)
 
static ULONG WINAPI d3drm1_AddRef (IDirect3DRM *iface)
 
static ULONG WINAPI d3drm1_Release (IDirect3DRM *iface)
 
static HRESULT WINAPI d3drm1_CreateObject (IDirect3DRM *iface, REFCLSID clsid, IUnknown *outer, REFIID iid, void **out)
 
static HRESULT WINAPI d3drm1_CreateFrame (IDirect3DRM *iface, IDirect3DRMFrame *parent_frame, IDirect3DRMFrame **frame)
 
static HRESULT WINAPI d3drm1_CreateMesh (IDirect3DRM *iface, IDirect3DRMMesh **mesh)
 
static HRESULT WINAPI d3drm1_CreateMeshBuilder (IDirect3DRM *iface, IDirect3DRMMeshBuilder **mesh_builder)
 
static HRESULT WINAPI d3drm1_CreateFace (IDirect3DRM *iface, IDirect3DRMFace **face)
 
static HRESULT WINAPI d3drm1_CreateAnimation (IDirect3DRM *iface, IDirect3DRMAnimation **animation)
 
static HRESULT WINAPI d3drm1_CreateAnimationSet (IDirect3DRM *iface, IDirect3DRMAnimationSet **set)
 
static HRESULT WINAPI d3drm1_CreateTexture (IDirect3DRM *iface, D3DRMIMAGE *image, IDirect3DRMTexture **texture)
 
static HRESULT WINAPI d3drm1_CreateLight (IDirect3DRM *iface, D3DRMLIGHTTYPE type, D3DCOLOR color, IDirect3DRMLight **light)
 
static HRESULT WINAPI d3drm1_CreateLightRGB (IDirect3DRM *iface, D3DRMLIGHTTYPE type, D3DVALUE red, D3DVALUE green, D3DVALUE blue, IDirect3DRMLight **light)
 
static HRESULT WINAPI d3drm1_CreateMaterial (IDirect3DRM *iface, D3DVALUE power, IDirect3DRMMaterial **material)
 
static HRESULT WINAPI d3drm1_CreateDevice (IDirect3DRM *iface, DWORD width, DWORD height, IDirect3DRMDevice **device)
 
static HRESULT WINAPI d3drm1_CreateDeviceFromSurface (IDirect3DRM *iface, GUID *guid, IDirectDraw *ddraw, IDirectDrawSurface *backbuffer, IDirect3DRMDevice **device)
 
static HRESULT WINAPI d3drm1_CreateDeviceFromD3D (IDirect3DRM *iface, IDirect3D *d3d, IDirect3DDevice *d3d_device, IDirect3DRMDevice **device)
 
static HRESULT WINAPI d3drm1_CreateDeviceFromClipper (IDirect3DRM *iface, IDirectDrawClipper *clipper, GUID *guid, int width, int height, IDirect3DRMDevice **device)
 
static HRESULT WINAPI d3drm1_CreateTextureFromSurface (IDirect3DRM *iface, IDirectDrawSurface *surface, IDirect3DRMTexture **texture)
 
static HRESULT WINAPI d3drm1_CreateShadow (IDirect3DRM *iface, IDirect3DRMVisual *visual, IDirect3DRMLight *light, D3DVALUE px, D3DVALUE py, D3DVALUE pz, D3DVALUE nx, D3DVALUE ny, D3DVALUE nz, IDirect3DRMVisual **shadow)
 
static HRESULT WINAPI d3drm1_CreateViewport (IDirect3DRM *iface, IDirect3DRMDevice *device, IDirect3DRMFrame *camera, DWORD x, DWORD y, DWORD width, DWORD height, IDirect3DRMViewport **viewport)
 
static HRESULT WINAPI d3drm1_CreateWrap (IDirect3DRM *iface, D3DRMWRAPTYPE type, IDirect3DRMFrame *frame, D3DVALUE ox, D3DVALUE oy, D3DVALUE oz, D3DVALUE dx, D3DVALUE dy, D3DVALUE dz, D3DVALUE ux, D3DVALUE uy, D3DVALUE uz, D3DVALUE ou, D3DVALUE ov, D3DVALUE su, D3DVALUE sv, IDirect3DRMWrap **wrap)
 
static HRESULT WINAPI d3drm1_CreateUserVisual (IDirect3DRM *iface, D3DRMUSERVISUALCALLBACK cb, void *ctx, IDirect3DRMUserVisual **visual)
 
static HRESULT WINAPI d3drm1_LoadTexture (IDirect3DRM *iface, const char *filename, IDirect3DRMTexture **texture)
 
static HRESULT WINAPI d3drm1_LoadTextureFromResource (IDirect3DRM *iface, HRSRC resource, IDirect3DRMTexture **texture)
 
static HRESULT WINAPI d3drm1_SetSearchPath (IDirect3DRM *iface, const char *path)
 
static HRESULT WINAPI d3drm1_AddSearchPath (IDirect3DRM *iface, const char *path)
 
static HRESULT WINAPI d3drm1_GetSearchPath (IDirect3DRM *iface, DWORD *size, char *path)
 
static HRESULT WINAPI d3drm1_SetDefaultTextureColors (IDirect3DRM *iface, DWORD color_count)
 
static HRESULT WINAPI d3drm1_SetDefaultTextureShades (IDirect3DRM *iface, DWORD shade_count)
 
static HRESULT WINAPI d3drm1_GetDevices (IDirect3DRM *iface, IDirect3DRMDeviceArray **array)
 
static HRESULT WINAPI d3drm1_GetNamedObject (IDirect3DRM *iface, const char *name, IDirect3DRMObject **object)
 
static HRESULT WINAPI d3drm1_EnumerateObjects (IDirect3DRM *iface, D3DRMOBJECTCALLBACK cb, void *ctx)
 
static HRESULT WINAPI d3drm1_Load (IDirect3DRM *iface, void *source, void *object_id, IID **iids, DWORD iid_count, D3DRMLOADOPTIONS flags, D3DRMLOADCALLBACK load_cb, void *load_ctx, D3DRMLOADTEXTURECALLBACK load_tex_cb, void *load_tex_ctx, IDirect3DRMFrame *parent_frame)
 
static HRESULT WINAPI d3drm1_Tick (IDirect3DRM *iface, D3DVALUE tick)
 
static HRESULT WINAPI d3drm2_QueryInterface (IDirect3DRM2 *iface, REFIID riid, void **out)
 
static ULONG WINAPI d3drm2_AddRef (IDirect3DRM2 *iface)
 
static ULONG WINAPI d3drm2_Release (IDirect3DRM2 *iface)
 
static HRESULT WINAPI d3drm2_CreateObject (IDirect3DRM2 *iface, REFCLSID clsid, IUnknown *outer, REFIID iid, void **out)
 
static HRESULT WINAPI d3drm2_CreateFrame (IDirect3DRM2 *iface, IDirect3DRMFrame *parent_frame, IDirect3DRMFrame2 **frame)
 
static HRESULT WINAPI d3drm2_CreateMesh (IDirect3DRM2 *iface, IDirect3DRMMesh **mesh)
 
static HRESULT WINAPI d3drm2_CreateMeshBuilder (IDirect3DRM2 *iface, IDirect3DRMMeshBuilder2 **mesh_builder)
 
static HRESULT WINAPI d3drm2_CreateFace (IDirect3DRM2 *iface, IDirect3DRMFace **face)
 
static HRESULT WINAPI d3drm2_CreateAnimation (IDirect3DRM2 *iface, IDirect3DRMAnimation **animation)
 
static HRESULT WINAPI d3drm2_CreateAnimationSet (IDirect3DRM2 *iface, IDirect3DRMAnimationSet **set)
 
static HRESULT WINAPI d3drm2_CreateTexture (IDirect3DRM2 *iface, D3DRMIMAGE *image, IDirect3DRMTexture2 **texture)
 
static HRESULT WINAPI d3drm2_CreateLight (IDirect3DRM2 *iface, D3DRMLIGHTTYPE type, D3DCOLOR color, IDirect3DRMLight **light)
 
static HRESULT WINAPI d3drm2_CreateLightRGB (IDirect3DRM2 *iface, D3DRMLIGHTTYPE type, D3DVALUE red, D3DVALUE green, D3DVALUE blue, IDirect3DRMLight **light)
 
static HRESULT WINAPI d3drm2_CreateMaterial (IDirect3DRM2 *iface, D3DVALUE power, IDirect3DRMMaterial **material)
 
static HRESULT WINAPI d3drm2_CreateDevice (IDirect3DRM2 *iface, DWORD width, DWORD height, IDirect3DRMDevice2 **device)
 
static HRESULT WINAPI d3drm2_CreateDeviceFromSurface (IDirect3DRM2 *iface, GUID *guid, IDirectDraw *ddraw, IDirectDrawSurface *backbuffer, IDirect3DRMDevice2 **device)
 
static HRESULT WINAPI d3drm2_CreateDeviceFromD3D (IDirect3DRM2 *iface, IDirect3D2 *d3d, IDirect3DDevice2 *d3d_device, IDirect3DRMDevice2 **device)
 
static HRESULT WINAPI d3drm2_CreateDeviceFromClipper (IDirect3DRM2 *iface, IDirectDrawClipper *clipper, GUID *guid, int width, int height, IDirect3DRMDevice2 **device)
 
static HRESULT WINAPI d3drm2_CreateTextureFromSurface (IDirect3DRM2 *iface, IDirectDrawSurface *surface, IDirect3DRMTexture2 **texture)
 
static HRESULT WINAPI d3drm2_CreateShadow (IDirect3DRM2 *iface, IDirect3DRMVisual *visual, IDirect3DRMLight *light, D3DVALUE px, D3DVALUE py, D3DVALUE pz, D3DVALUE nx, D3DVALUE ny, D3DVALUE nz, IDirect3DRMVisual **shadow)
 
static HRESULT WINAPI d3drm2_CreateViewport (IDirect3DRM2 *iface, IDirect3DRMDevice *device, IDirect3DRMFrame *camera, DWORD x, DWORD y, DWORD width, DWORD height, IDirect3DRMViewport **viewport)
 
static HRESULT WINAPI d3drm2_CreateWrap (IDirect3DRM2 *iface, D3DRMWRAPTYPE type, IDirect3DRMFrame *frame, D3DVALUE ox, D3DVALUE oy, D3DVALUE oz, D3DVALUE dx, D3DVALUE dy, D3DVALUE dz, D3DVALUE ux, D3DVALUE uy, D3DVALUE uz, D3DVALUE ou, D3DVALUE ov, D3DVALUE su, D3DVALUE sv, IDirect3DRMWrap **wrap)
 
static HRESULT WINAPI d3drm2_CreateUserVisual (IDirect3DRM2 *iface, D3DRMUSERVISUALCALLBACK cb, void *ctx, IDirect3DRMUserVisual **visual)
 
static HRESULT WINAPI d3drm2_LoadTexture (IDirect3DRM2 *iface, const char *filename, IDirect3DRMTexture2 **texture)
 
static HRESULT WINAPI d3drm2_LoadTextureFromResource (IDirect3DRM2 *iface, HMODULE module, const char *resource_name, const char *resource_type, IDirect3DRMTexture2 **texture)
 
static HRESULT WINAPI d3drm2_SetSearchPath (IDirect3DRM2 *iface, const char *path)
 
static HRESULT WINAPI d3drm2_AddSearchPath (IDirect3DRM2 *iface, const char *path)
 
static HRESULT WINAPI d3drm2_GetSearchPath (IDirect3DRM2 *iface, DWORD *size, char *path)
 
static HRESULT WINAPI d3drm2_SetDefaultTextureColors (IDirect3DRM2 *iface, DWORD color_count)
 
static HRESULT WINAPI d3drm2_SetDefaultTextureShades (IDirect3DRM2 *iface, DWORD shade_count)
 
static HRESULT WINAPI d3drm2_GetDevices (IDirect3DRM2 *iface, IDirect3DRMDeviceArray **array)
 
static HRESULT WINAPI d3drm2_GetNamedObject (IDirect3DRM2 *iface, const char *name, IDirect3DRMObject **object)
 
static HRESULT WINAPI d3drm2_EnumerateObjects (IDirect3DRM2 *iface, D3DRMOBJECTCALLBACK cb, void *ctx)
 
static HRESULT WINAPI d3drm2_Load (IDirect3DRM2 *iface, void *source, void *object_id, IID **iids, DWORD iid_count, D3DRMLOADOPTIONS flags, D3DRMLOADCALLBACK load_cb, void *load_ctx, D3DRMLOADTEXTURECALLBACK load_tex_cb, void *load_tex_ctx, IDirect3DRMFrame *parent_frame)
 
static HRESULT WINAPI d3drm2_Tick (IDirect3DRM2 *iface, D3DVALUE tick)
 
static HRESULT WINAPI d3drm2_CreateProgressiveMesh (IDirect3DRM2 *iface, IDirect3DRMProgressiveMesh **mesh)
 
static HRESULT WINAPI d3drm3_QueryInterface (IDirect3DRM3 *iface, REFIID riid, void **out)
 
static ULONG WINAPI d3drm3_AddRef (IDirect3DRM3 *iface)
 
static ULONG WINAPI d3drm3_Release (IDirect3DRM3 *iface)
 
static HRESULT WINAPI d3drm3_CreateObject (IDirect3DRM3 *iface, REFCLSID clsid, IUnknown *outer, REFIID iid, void **out)
 
static HRESULT WINAPI d3drm3_CreateFrame (IDirect3DRM3 *iface, IDirect3DRMFrame3 *parent, IDirect3DRMFrame3 **frame)
 
static HRESULT WINAPI d3drm3_CreateMesh (IDirect3DRM3 *iface, IDirect3DRMMesh **mesh)
 
static HRESULT WINAPI d3drm3_CreateMeshBuilder (IDirect3DRM3 *iface, IDirect3DRMMeshBuilder3 **mesh_builder)
 
static HRESULT WINAPI d3drm3_CreateFace (IDirect3DRM3 *iface, IDirect3DRMFace2 **face)
 
static HRESULT WINAPI d3drm3_CreateAnimation (IDirect3DRM3 *iface, IDirect3DRMAnimation2 **animation)
 
static HRESULT WINAPI d3drm3_CreateAnimationSet (IDirect3DRM3 *iface, IDirect3DRMAnimationSet2 **set)
 
static HRESULT WINAPI d3drm3_CreateTexture (IDirect3DRM3 *iface, D3DRMIMAGE *image, IDirect3DRMTexture3 **texture)
 
static HRESULT WINAPI d3drm3_CreateLight (IDirect3DRM3 *iface, D3DRMLIGHTTYPE type, D3DCOLOR color, IDirect3DRMLight **light)
 
static HRESULT WINAPI d3drm3_CreateLightRGB (IDirect3DRM3 *iface, D3DRMLIGHTTYPE type, D3DVALUE red, D3DVALUE green, D3DVALUE blue, IDirect3DRMLight **light)
 
static HRESULT WINAPI d3drm3_CreateMaterial (IDirect3DRM3 *iface, D3DVALUE power, IDirect3DRMMaterial2 **material)
 
static HRESULT WINAPI d3drm3_CreateDevice (IDirect3DRM3 *iface, DWORD width, DWORD height, IDirect3DRMDevice3 **device)
 
static HRESULT WINAPI d3drm3_CreateDeviceFromSurface (IDirect3DRM3 *iface, GUID *guid, IDirectDraw *ddraw, IDirectDrawSurface *backbuffer, DWORD flags, IDirect3DRMDevice3 **device)
 
static HRESULT WINAPI d3drm3_CreateDeviceFromD3D (IDirect3DRM3 *iface, IDirect3D2 *d3d, IDirect3DDevice2 *d3d_device, IDirect3DRMDevice3 **device)
 
static HRESULT WINAPI d3drm3_CreateDeviceFromClipper (IDirect3DRM3 *iface, IDirectDrawClipper *clipper, GUID *guid, int width, int height, IDirect3DRMDevice3 **device)
 
static HRESULT WINAPI d3drm3_CreateShadow (IDirect3DRM3 *iface, IUnknown *object, IDirect3DRMLight *light, D3DVALUE px, D3DVALUE py, D3DVALUE pz, D3DVALUE nx, D3DVALUE ny, D3DVALUE nz, IDirect3DRMShadow2 **shadow)
 
static HRESULT WINAPI d3drm3_CreateTextureFromSurface (IDirect3DRM3 *iface, IDirectDrawSurface *surface, IDirect3DRMTexture3 **texture)
 
static HRESULT WINAPI d3drm3_CreateViewport (IDirect3DRM3 *iface, IDirect3DRMDevice3 *device, IDirect3DRMFrame3 *camera, DWORD x, DWORD y, DWORD width, DWORD height, IDirect3DRMViewport2 **viewport)
 
static HRESULT WINAPI d3drm3_CreateWrap (IDirect3DRM3 *iface, D3DRMWRAPTYPE type, IDirect3DRMFrame3 *frame, D3DVALUE ox, D3DVALUE oy, D3DVALUE oz, D3DVALUE dx, D3DVALUE dy, D3DVALUE dz, D3DVALUE ux, D3DVALUE uy, D3DVALUE uz, D3DVALUE ou, D3DVALUE ov, D3DVALUE su, D3DVALUE sv, IDirect3DRMWrap **wrap)
 
static HRESULT WINAPI d3drm3_CreateUserVisual (IDirect3DRM3 *iface, D3DRMUSERVISUALCALLBACK cb, void *ctx, IDirect3DRMUserVisual **visual)
 
static HRESULT WINAPI d3drm3_LoadTexture (IDirect3DRM3 *iface, const char *filename, IDirect3DRMTexture3 **texture)
 
static HRESULT WINAPI d3drm3_LoadTextureFromResource (IDirect3DRM3 *iface, HMODULE module, const char *resource_name, const char *resource_type, IDirect3DRMTexture3 **texture)
 
static HRESULT WINAPI d3drm3_SetSearchPath (IDirect3DRM3 *iface, const char *path)
 
static HRESULT WINAPI d3drm3_AddSearchPath (IDirect3DRM3 *iface, const char *path)
 
static HRESULT WINAPI d3drm3_GetSearchPath (IDirect3DRM3 *iface, DWORD *size, char *path)
 
static HRESULT WINAPI d3drm3_SetDefaultTextureColors (IDirect3DRM3 *iface, DWORD color_count)
 
static HRESULT WINAPI d3drm3_SetDefaultTextureShades (IDirect3DRM3 *iface, DWORD shade_count)
 
static HRESULT WINAPI d3drm3_GetDevices (IDirect3DRM3 *iface, IDirect3DRMDeviceArray **array)
 
static HRESULT WINAPI d3drm3_GetNamedObject (IDirect3DRM3 *iface, const char *name, IDirect3DRMObject **object)
 
static HRESULT WINAPI d3drm3_EnumerateObjects (IDirect3DRM3 *iface, D3DRMOBJECTCALLBACK cb, void *ctx)
 
static HRESULT load_data (IDirect3DRM3 *iface, IDirectXFileData *data_object, IID **GUIDs, DWORD nb_GUIDs, D3DRMLOADCALLBACK LoadProc, void *ArgLP, D3DRMLOADTEXTURECALLBACK LoadTextureProc, void *ArgLTP, IDirect3DRMFrame3 *parent_frame)
 
static HRESULT WINAPI d3drm3_Load (IDirect3DRM3 *iface, void *source, void *object_id, IID **iids, DWORD iid_count, D3DRMLOADOPTIONS flags, D3DRMLOADCALLBACK load_cb, void *load_ctx, D3DRMLOADTEXTURECALLBACK load_tex_cb, void *load_tex_ctx, IDirect3DRMFrame3 *parent_frame)
 
static HRESULT WINAPI d3drm3_Tick (IDirect3DRM3 *iface, D3DVALUE tick)
 
static HRESULT WINAPI d3drm3_CreateProgressiveMesh (IDirect3DRM3 *iface, IDirect3DRMProgressiveMesh **mesh)
 
static HRESULT WINAPI d3drm3_RegisterClient (IDirect3DRM3 *iface, REFGUID guid, DWORD *id)
 
static HRESULT WINAPI d3drm3_UnregisterClient (IDirect3DRM3 *iface, REFGUID guid)
 
static HRESULT WINAPI d3drm3_CreateClippedVisual (IDirect3DRM3 *iface, IDirect3DRMVisual *visual, IDirect3DRMClippedVisual **clipped_visual)
 
static HRESULT WINAPI d3drm3_SetOptions (IDirect3DRM3 *iface, DWORD flags)
 
static HRESULT WINAPI d3drm3_GetOptions (IDirect3DRM3 *iface, DWORD *flags)
 
HRESULT WINAPI Direct3DRMCreate (IDirect3DRM **d3drm)
 
HRESULT WINAPI DllCanUnloadNow (void)
 
HRESULT WINAPI DllGetClassObject (REFCLSID rclsid, REFIID riid, void **ppv)
 

Variables

static const struct IDirect3DRMVtbl d3drm1_vtbl
 
static const struct IDirect3DRM2Vtbl d3drm2_vtbl
 
static const struct IDirect3DRM3Vtbl d3drm3_vtbl
 

Function Documentation

◆ d3drm1_AddRef()

static ULONG WINAPI d3drm1_AddRef ( IDirect3DRM *  iface)
static

Definition at line 247 of file d3drm.c.

248{
249 struct d3drm *d3drm = impl_from_IDirect3DRM(iface);
250 ULONG refcount = InterlockedIncrement(&d3drm->ref1);
251
252 TRACE("%p increasing refcount to %u.\n", iface, refcount);
253
254 if (refcount == 1)
256
257 return refcount;
258}
#define InterlockedIncrement
Definition: armddk.h:53
static struct d3drm * impl_from_IDirect3DRM(IDirect3DRM *iface)
Definition: d3drm.c:196
#define TRACE(s)
Definition: solgame.cpp:4
Definition: d3drm.c:189
LONG ref1
Definition: d3drm.c:193
LONG iface_count
Definition: d3drm.c:193
uint32_t ULONG
Definition: typedefs.h:59

◆ d3drm1_AddSearchPath()

static HRESULT WINAPI d3drm1_AddSearchPath ( IDirect3DRM *  iface,
const char path 
)
static

Definition at line 681 of file d3drm.c.

682{
683 FIXME("iface %p, path %s stub!\n", iface, debugstr_a(path));
684
685 return E_NOTIMPL;
686}
#define FIXME(fmt,...)
Definition: debug.h:111
#define E_NOTIMPL
Definition: ddrawi.h:99
#define debugstr_a
Definition: kernel32.h:31

◆ d3drm1_CreateAnimation()

static HRESULT WINAPI d3drm1_CreateAnimation ( IDirect3DRM *  iface,
IDirect3DRMAnimation **  animation 
)
static

Definition at line 333 of file d3drm.c.

334{
335 struct d3drm_animation *object;
336 HRESULT hr;
337
338 TRACE("iface %p, animation %p.\n", iface, animation);
339
340 if (!animation)
341 return D3DRMERR_BADVALUE;
342
343 if (FAILED(hr = d3drm_animation_create(&object, iface)))
344 return hr;
345
346 *animation = &object->IDirect3DRMAnimation_iface;
347
348 return S_OK;
349}
#define D3DRMERR_BADVALUE
Definition: d3drm.h:496
HRESULT d3drm_animation_create(struct d3drm_animation **animation, IDirect3DRM *d3drm) DECLSPEC_HIDDEN
Definition: frame.c:3881
#define S_OK
Definition: intsafe.h:52
#define FAILED(hr)
Definition: intsafe.h:51
HRESULT hr
Definition: shlfolder.c:183

◆ d3drm1_CreateAnimationSet()

static HRESULT WINAPI d3drm1_CreateAnimationSet ( IDirect3DRM *  iface,
IDirect3DRMAnimationSet **  set 
)
static

Definition at line 351 of file d3drm.c.

352{
353 FIXME("iface %p, set %p stub!\n", iface, set);
354
355 return E_NOTIMPL;
356}
Definition: _set.h:50

◆ d3drm1_CreateDevice()

static HRESULT WINAPI d3drm1_CreateDevice ( IDirect3DRM *  iface,
DWORD  width,
DWORD  height,
IDirect3DRMDevice **  device 
)
static

Definition at line 413 of file d3drm.c.

415{
416 TRACE("iface %p, width %u, height %u, device %p.\n", iface, width, height, device);
417
418 if (!device)
419 return D3DRMERR_BADVALUE;
420 *device = NULL;
421
422 return D3DRMERR_BADDEVICE;
423}
#define D3DRMERR_BADDEVICE
Definition: d3drm.h:495
#define NULL
Definition: types.h:112
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546
GLint GLint GLsizei width
Definition: gl.h:1546
Definition: devices.h:37

◆ d3drm1_CreateDeviceFromClipper()

static HRESULT WINAPI d3drm1_CreateDeviceFromClipper ( IDirect3DRM *  iface,
IDirectDrawClipper *  clipper,
GUID guid,
int  width,
int  height,
IDirect3DRMDevice **  device 
)
static

Definition at line 477 of file d3drm.c.

480{
481 struct d3drm_device *object;
482 IDirectDraw *ddraw;
483 IDirectDrawSurface *render_target;
484 HRESULT hr;
485
486 TRACE("iface %p, clipper %p, guid %s, width %d, height %d, device %p.\n",
488
489 if (!device)
490 return D3DRMERR_BADVALUE;
491 *device = NULL;
492
493 if (!clipper || !width || !height)
494 return D3DRMERR_BADVALUE;
495
497 if (FAILED(hr))
498 return hr;
499
500 if (FAILED(hr = d3drm_device_create(&object, iface)))
501 {
502 IDirectDraw_Release(ddraw);
503 return hr;
504 }
505
507 if (FAILED(hr))
508 {
509 IDirectDraw_Release(ddraw);
510 d3drm_device_destroy(object);
511 return hr;
512 }
513
515 IDirectDraw_Release(ddraw);
516 IDirectDrawSurface_Release(render_target);
517 if (FAILED(hr))
518 d3drm_device_destroy(object);
519 else
520 *device = &object->IDirect3DRMDevice_iface;
521
522 return hr;
523}
HRESULT d3drm_device_create(struct d3drm_device **device, IDirect3DRM *d3drm) DECLSPEC_HIDDEN
Definition: device.c:1634
HRESULT d3drm_device_init(struct d3drm_device *device, UINT version, IDirectDraw *ddraw, IDirectDrawSurface *surface, BOOL create_z_surface) DECLSPEC_HIDDEN
Definition: device.c:120
void d3drm_device_destroy(struct d3drm_device *device) DECLSPEC_HIDDEN
Definition: device.c:40
HRESULT d3drm_device_create_surfaces_from_clipper(struct d3drm_device *object, IDirectDraw *ddraw, IDirectDrawClipper *clipper, int width, int height, IDirectDrawSurface **surface) DECLSPEC_HIDDEN
Definition: device.c:69
#define TRUE
Definition: types.h:120
HRESULT WINAPI DirectDrawCreate(LPGUID lpGUID, LPDIRECTDRAW *lplpDD, LPUNKNOWN pUnkOuter)
Definition: main.c:86
#define debugstr_guid
Definition: kernel32.h:35
const GUID * guid
IDirectDraw * ddraw
IDirectDrawSurface * render_target
IDirectDrawClipper * clipper

◆ d3drm1_CreateDeviceFromD3D()

static HRESULT WINAPI d3drm1_CreateDeviceFromD3D ( IDirect3DRM *  iface,
IDirect3D *  d3d,
IDirect3DDevice *  d3d_device,
IDirect3DRMDevice **  device 
)
static

Definition at line 452 of file d3drm.c.

454{
455 struct d3drm_device *object;
456 HRESULT hr;
457 TRACE("iface %p, d3d %p, d3d_device %p, device %p.\n",
458 iface, d3d, d3d_device, device);
459
460 if (!device)
461 return D3DRMERR_BADVALUE;
462 *device = NULL;
463
464 if (FAILED(hr = d3drm_device_create(&object, iface)))
465 return hr;
466
467 if (FAILED(hr = IDirect3DRMDevice_InitFromD3D(&object->IDirect3DRMDevice_iface, d3d, d3d_device)))
468 {
469 d3drm_device_destroy(object);
470 return hr;
471 }
472 *device = &object->IDirect3DRMDevice_iface;
473
474 return D3DRM_OK;
475}
#define D3DRM_OK
Definition: d3drm.h:486
#define IDirect3DRMDevice_InitFromD3D(p, a, b)
Definition: d3drmobj.h:421

◆ d3drm1_CreateDeviceFromSurface()

static HRESULT WINAPI d3drm1_CreateDeviceFromSurface ( IDirect3DRM *  iface,
GUID guid,
IDirectDraw *  ddraw,
IDirectDrawSurface *  backbuffer,
IDirect3DRMDevice **  device 
)
static

Definition at line 425 of file d3drm.c.

427{
428 struct d3drm_device *object;
429 HRESULT hr;
430
431 TRACE("iface %p, guid %s, ddraw %p, backbuffer %p, device %p.\n",
432 iface, debugstr_guid(guid), ddraw, backbuffer, device);
433
434 if (!device)
435 return D3DRMERR_BADVALUE;
436 *device = NULL;
437
438 if (!backbuffer || !ddraw)
439 return D3DRMERR_BADDEVICE;
440
441 if (FAILED(hr = d3drm_device_create(&object, iface)))
442 return hr;
443
444 if (SUCCEEDED(hr = d3drm_device_init(object, 1, ddraw, backbuffer, TRUE)))
445 *device = &object->IDirect3DRMDevice_iface;
446 else
447 d3drm_device_destroy(object);
448
449 return hr;
450}
#define SUCCEEDED(hr)
Definition: intsafe.h:50

◆ d3drm1_CreateFace()

static HRESULT WINAPI d3drm1_CreateFace ( IDirect3DRM *  iface,
IDirect3DRMFace **  face 
)
static

Definition at line 318 of file d3drm.c.

319{
320 struct d3drm_face *object;
321 HRESULT hr;
322
323 TRACE("iface %p, face %p.\n", iface, face);
324
325 if (FAILED(hr = d3drm_face_create(&object)))
326 return hr;
327
328 *face = &object->IDirect3DRMFace_iface;
329
330 return S_OK;
331}
HRESULT d3drm_face_create(struct d3drm_face **face) DECLSPEC_HIDDEN
Definition: face.c:620
GLenum GLuint GLint GLenum face
Definition: glext.h:7025

◆ d3drm1_CreateFrame()

static HRESULT WINAPI d3drm1_CreateFrame ( IDirect3DRM *  iface,
IDirect3DRMFrame *  parent_frame,
IDirect3DRMFrame **  frame 
)
static

Definition at line 284 of file d3drm.c.

286{
287 struct d3drm_frame *object;
288 HRESULT hr;
289
290 TRACE("iface %p, parent_frame %p, frame %p.\n", iface, parent_frame, frame);
291
292 if (FAILED(hr = d3drm_frame_create(&object, (IUnknown *)parent_frame, iface)))
293 return hr;
294
295 *frame = &object->IDirect3DRMFrame_iface;
296
297 return D3DRM_OK;
298}
HRESULT d3drm_frame_create(struct d3drm_frame **frame, IUnknown *parent_frame, IDirect3DRM *d3drm) DECLSPEC_HIDDEN
Definition: frame.c:3129

◆ d3drm1_CreateLight()

static HRESULT WINAPI d3drm1_CreateLight ( IDirect3DRM *  iface,
D3DRMLIGHTTYPE  type,
D3DCOLOR  color,
IDirect3DRMLight **  light 
)
static

Definition at line 382 of file d3drm.c.

384{
385 struct d3drm *d3drm = impl_from_IDirect3DRM(iface);
386
387 TRACE("iface %p, type %#x, color 0x%08x, light %p.\n", iface, type, color, light);
388
390}
#define IDirect3DRM3_CreateLight(p, a, b, c)
Definition: d3drm.h:410
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLuint color
Definition: glext.h:6243
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 light
Definition: glfuncs.h:170
IDirect3DRM3 IDirect3DRM3_iface
Definition: d3drm.c:192

◆ d3drm1_CreateLightRGB()

static HRESULT WINAPI d3drm1_CreateLightRGB ( IDirect3DRM *  iface,
D3DRMLIGHTTYPE  type,
D3DVALUE  red,
D3DVALUE  green,
D3DVALUE  blue,
IDirect3DRMLight **  light 
)
static

Definition at line 392 of file d3drm.c.

394{
395 struct d3drm *d3drm = impl_from_IDirect3DRM(iface);
396
397 TRACE("iface %p, type %#x, red %.8e, green %.8e, blue %.8e, light %p.\n",
398 iface, type, red, green, blue, light);
399
401}
#define IDirect3DRM3_CreateLightRGB(p, a, b, c, d, e)
Definition: d3drm.h:411
GLclampf green
Definition: gl.h:1740
GLclampf GLclampf blue
Definition: gl.h:1740
#define red
Definition: linetest.c:67

◆ d3drm1_CreateMaterial()

static HRESULT WINAPI d3drm1_CreateMaterial ( IDirect3DRM *  iface,
D3DVALUE  power,
IDirect3DRMMaterial **  material 
)
static

Definition at line 403 of file d3drm.c.

405{
406 struct d3drm *d3drm = impl_from_IDirect3DRM(iface);
407
408 TRACE("iface %p, power %.8e, material %p.\n", iface, power, material);
409
410 return IDirect3DRM3_CreateMaterial(&d3drm->IDirect3DRM3_iface, power, (IDirect3DRMMaterial2 **)material);
411}
#define IDirect3DRM3_CreateMaterial(p, a, b)
Definition: d3drm.h:412
float power
Definition: d3drm.c:3372

◆ d3drm1_CreateMesh()

static HRESULT WINAPI d3drm1_CreateMesh ( IDirect3DRM *  iface,
IDirect3DRMMesh **  mesh 
)
static

Definition at line 300 of file d3drm.c.

301{
302 struct d3drm *d3drm = impl_from_IDirect3DRM(iface);
303
304 TRACE("iface %p, mesh %p.\n", iface, mesh);
305
307}
#define IDirect3DRM3_CreateMesh(p, a)
Definition: d3drm.h:404
Definition: mesh.c:198

◆ d3drm1_CreateMeshBuilder()

static HRESULT WINAPI d3drm1_CreateMeshBuilder ( IDirect3DRM *  iface,
IDirect3DRMMeshBuilder **  mesh_builder 
)
static

Definition at line 309 of file d3drm.c.

310{
311 struct d3drm *d3drm = impl_from_IDirect3DRM(iface);
312
313 TRACE("iface %p, mesh_builder %p.\n", iface, mesh_builder);
314
315 return IDirect3DRM2_CreateMeshBuilder(&d3drm->IDirect3DRM2_iface, (IDirect3DRMMeshBuilder2 **)mesh_builder);
316}
#define IDirect3DRM2_CreateMeshBuilder(p, a)
Definition: d3drm.h:257
IDirect3DRMMeshBuilder * mesh_builder
Definition: d3drm.c:3330
IDirect3DRM2 IDirect3DRM2_iface
Definition: d3drm.c:191

◆ d3drm1_CreateObject()

static HRESULT WINAPI d3drm1_CreateObject ( IDirect3DRM *  iface,
REFCLSID  clsid,
IUnknown outer,
REFIID  iid,
void **  out 
)
static

Definition at line 273 of file d3drm.c.

275{
276 struct d3drm *d3drm = impl_from_IDirect3DRM(iface);
277
278 TRACE("iface %p, clsid %s, outer %p, iid %s, out %p.\n",
279 iface, debugstr_guid(clsid), outer, debugstr_guid(iid), out);
280
282}
#define IDirect3DRM3_CreateObject(p, a, b, c, d)
Definition: d3drm.h:402
REFCLSID clsid
Definition: msctf.c:82
static FILE * out
Definition: regtests2xml.c:44

◆ d3drm1_CreateShadow()

static HRESULT WINAPI d3drm1_CreateShadow ( IDirect3DRM *  iface,
IDirect3DRMVisual *  visual,
IDirect3DRMLight *  light,
D3DVALUE  px,
D3DVALUE  py,
D3DVALUE  pz,
D3DVALUE  nx,
D3DVALUE  ny,
D3DVALUE  nz,
IDirect3DRMVisual **  shadow 
)
static

Definition at line 549 of file d3drm.c.

552{
553 FIXME("iface %p, visual %p, light %p, px %.8e, py %.8e, pz %.8e, nx %.8e, ny %.8e, nz %.8e, shadow %p stub!\n",
554 iface, visual, light, px, py, pz, nx, ny, nz, shadow);
555
556 return E_NOTIMPL;
557}
GLfloat GLfloat nz
Definition: glext.h:8896
GLfloat ny
Definition: glext.h:8896
GLfloat GLfloat GLfloat GLfloat nx
Definition: glext.h:8898

◆ d3drm1_CreateTexture()

static HRESULT WINAPI d3drm1_CreateTexture ( IDirect3DRM *  iface,
D3DRMIMAGE image,
IDirect3DRMTexture **  texture 
)
static

Definition at line 358 of file d3drm.c.

360{
361 struct d3drm *d3drm = impl_from_IDirect3DRM(iface);
362 IDirect3DRMTexture3 *texture3;
363 HRESULT hr;
364
365 TRACE("iface %p, image %p, texture %p.\n", iface, image, texture);
366
367 if (!texture)
368 return D3DRMERR_BADVALUE;
369
371 {
372 *texture = NULL;
373 return hr;
374 }
375
376 hr = IDirect3DRMTexture3_QueryInterface(texture3, &IID_IDirect3DRMTexture, (void **)texture);
378
379 return hr;
380}
#define IDirect3DRM3_CreateTexture(p, a, b)
Definition: d3drm.h:409
#define IDirect3DRMTexture3_Release(p)
Definition: d3drmobj.h:3476
#define IDirect3DRMTexture3_QueryInterface(p, a, b)
Definition: d3drmobj.h:3474
GLenum GLuint texture
Definition: glext.h:6295

◆ d3drm1_CreateTextureFromSurface()

static HRESULT WINAPI d3drm1_CreateTextureFromSurface ( IDirect3DRM *  iface,
IDirectDrawSurface *  surface,
IDirect3DRMTexture **  texture 
)
static

Definition at line 525 of file d3drm.c.

527{
528 struct d3drm *d3drm = impl_from_IDirect3DRM(iface);
529 IDirect3DRMTexture3 *texture3;
530 HRESULT hr;
531
532 TRACE("iface %p, surface %p, texture %p.\n", iface, surface, texture);
533
534 if (!texture)
535 return D3DRMERR_BADVALUE;
536
538 {
539 *texture = NULL;
540 return hr;
541 }
542
543 hr = IDirect3DRMTexture3_QueryInterface(texture3, &IID_IDirect3DRMTexture, (void **)texture);
545
546 return hr;
547}
#define IDirect3DRM3_CreateTextureFromSurface(p, a, b)
Definition: d3drm.h:417

◆ d3drm1_CreateUserVisual()

static HRESULT WINAPI d3drm1_CreateUserVisual ( IDirect3DRM *  iface,
D3DRMUSERVISUALCALLBACK  cb,
void ctx,
IDirect3DRMUserVisual **  visual 
)
static

Definition at line 622 of file d3drm.c.

624{
625 FIXME("iface %p, cb %p, ctx %p visual %p stub!\n", iface, cb, ctx, visual);
626
627 return E_NOTIMPL;
628}
static HMODULE MODULEINFO DWORD cb
Definition: module.c:33

◆ d3drm1_CreateViewport()

static HRESULT WINAPI d3drm1_CreateViewport ( IDirect3DRM *  iface,
IDirect3DRMDevice *  device,
IDirect3DRMFrame *  camera,
DWORD  x,
DWORD  y,
DWORD  width,
DWORD  height,
IDirect3DRMViewport **  viewport 
)
static

Definition at line 559 of file d3drm.c.

561{
562 struct d3drm *d3drm = impl_from_IDirect3DRM(iface);
563 IDirect3DRMDevice3 *device3;
564 IDirect3DRMFrame3 *camera3;
565 IDirect3DRMViewport2 *viewport2;
566 HRESULT hr;
567
568 TRACE("iface %p, device %p, camera %p, x %u, y %u, width %u, height %u, viewport %p.\n",
569 iface, device, camera, x, y, width, height, viewport);
570
571 if (!viewport)
572 return D3DRMERR_BADVALUE;
573 *viewport = NULL;
574
575 if (!device || !camera)
576 return D3DRMERR_BADOBJECT;
577
578 if (FAILED(hr = IDirect3DRMDevice_QueryInterface(device, &IID_IDirect3DRMDevice3, (void **)&device3)))
579 return hr;
580
581 if (FAILED(hr = IDirect3DRMFrame_QueryInterface(camera, &IID_IDirect3DRMFrame3, (void **)&camera3)))
582 {
584 return hr;
585 }
586
587 hr = IDirect3DRM3_CreateViewport(&d3drm->IDirect3DRM3_iface, device3, camera3, x, y, width, height, &viewport2);
590 if (FAILED(hr))
591 return hr;
592
593 hr = IDirect3DRMViewport2_QueryInterface(viewport2, &IID_IDirect3DRMViewport, (void **)viewport);
595
596 return hr;
597}
#define IDirect3DRM3_CreateViewport(p, a, b, c, d, e, f, g)
Definition: d3drm.h:419
#define D3DRMERR_BADOBJECT
Definition: d3drm.h:487
#define IDirect3DRMViewport2_QueryInterface(p, a, b)
Definition: d3drmobj.h:989
#define IDirect3DRMDevice3_Release(p)
Definition: d3drmobj.h:693
#define IDirect3DRMFrame_QueryInterface(p, a, b)
Definition: d3drmobj.h:1166
#define IDirect3DRMFrame3_Release(p)
Definition: d3drmobj.h:1708
#define IDirect3DRMDevice_QueryInterface(p, a, b)
Definition: d3drmobj.h:407
#define IDirect3DRMViewport2_Release(p)
Definition: d3drmobj.h:991
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548

◆ d3drm1_CreateWrap()

static HRESULT WINAPI d3drm1_CreateWrap ( IDirect3DRM *  iface,
D3DRMWRAPTYPE  type,
IDirect3DRMFrame *  frame,
D3DVALUE  ox,
D3DVALUE  oy,
D3DVALUE  oz,
D3DVALUE  dx,
D3DVALUE  dy,
D3DVALUE  dz,
D3DVALUE  ux,
D3DVALUE  uy,
D3DVALUE  uz,
D3DVALUE  ou,
D3DVALUE  ov,
D3DVALUE  su,
D3DVALUE  sv,
IDirect3DRMWrap **  wrap 
)
static

Definition at line 599 of file d3drm.c.

603{
604 struct d3drm_wrap *object;
605 HRESULT hr;
606
607 FIXME("iface %p, type %#x, frame %p, ox %.8e, oy %.8e, oz %.8e, dx %.8e, dy %.8e, dz %.8e, "
608 "ux %.8e, uy %.8e, uz %.8e, ou %.8e, ov %.8e, su %.8e, sv %.8e, wrap %p, semi-stub.\n",
609 iface, type, frame, ox, oy, oz, dx, dy, dz, ux, uy, uz, ou, ov, su, sv, wrap);
610
611 if (!wrap)
612 return D3DRMERR_BADVALUE;
613
614 if (FAILED(hr = d3drm_wrap_create(&object, iface)))
615 return hr;
616
617 *wrap = &object->IDirect3DRMWrap_iface;
618
619 return S_OK;
620}
HRESULT d3drm_wrap_create(struct d3drm_wrap **wrap, IDirect3DRM *d3drm) DECLSPEC_HIDDEN
Definition: meshbuilder.c:3019
#define wrap(journal, var)
Definition: recovery.c:207
GLint dy
Definition: linetemp.h:97
GLint dx
Definition: linetemp.h:97

◆ d3drm1_EnumerateObjects()

static HRESULT WINAPI d3drm1_EnumerateObjects ( IDirect3DRM *  iface,
D3DRMOBJECTCALLBACK  cb,
void ctx 
)
static

Definition at line 724 of file d3drm.c.

725{
726 FIXME("iface %p, cb %p, ctx %p stub!\n", iface, cb, ctx);
727
728 return E_NOTIMPL;
729}

◆ d3drm1_GetDevices()

static HRESULT WINAPI d3drm1_GetDevices ( IDirect3DRM *  iface,
IDirect3DRMDeviceArray **  array 
)
static

Definition at line 709 of file d3drm.c.

710{
711 FIXME("iface %p, array %p stub!\n", iface, array);
712
713 return E_NOTIMPL;
714}

◆ d3drm1_GetNamedObject()

static HRESULT WINAPI d3drm1_GetNamedObject ( IDirect3DRM *  iface,
const char name,
IDirect3DRMObject **  object 
)
static

Definition at line 716 of file d3drm.c.

718{
719 FIXME("iface %p, name %s, object %p stub!\n", iface, debugstr_a(name), object);
720
721 return E_NOTIMPL;
722}
Definition: name.c:39

◆ d3drm1_GetSearchPath()

static HRESULT WINAPI d3drm1_GetSearchPath ( IDirect3DRM *  iface,
DWORD size,
char path 
)
static

Definition at line 688 of file d3drm.c.

689{
690 FIXME("iface %p, size %p, path %p stub!\n", iface, size, path);
691
692 return E_NOTIMPL;
693}
GLsizeiptr size
Definition: glext.h:5919

◆ d3drm1_Load()

static HRESULT WINAPI d3drm1_Load ( IDirect3DRM *  iface,
void source,
void object_id,
IID **  iids,
DWORD  iid_count,
D3DRMLOADOPTIONS  flags,
D3DRMLOADCALLBACK  load_cb,
void load_ctx,
D3DRMLOADTEXTURECALLBACK  load_tex_cb,
void load_tex_ctx,
IDirect3DRMFrame *  parent_frame 
)
static

Definition at line 731 of file d3drm.c.

734{
735 struct d3drm *d3drm = impl_from_IDirect3DRM(iface);
736 IDirect3DRMFrame3 *parent_frame3 = NULL;
738
739 TRACE("iface %p, source %p, object_id %p, iids %p, iid_count %u, flags %#x, "
740 "load_cb %p, load_ctx %p, load_tex_cb %p, load_tex_ctx %p, parent_frame %p.\n",
741 iface, source, object_id, iids, iid_count, flags,
742 load_cb, load_ctx, load_tex_cb, load_tex_ctx, parent_frame);
743
744 if (parent_frame)
745 hr = IDirect3DRMFrame_QueryInterface(parent_frame, &IID_IDirect3DRMFrame3, (void **)&parent_frame3);
746 if (SUCCEEDED(hr))
747 hr = IDirect3DRM3_Load(&d3drm->IDirect3DRM3_iface, source, object_id, iids, iid_count,
748 flags, load_cb, load_ctx, load_tex_cb, load_tex_ctx, parent_frame3);
749 if (parent_frame3)
750 IDirect3DRMFrame3_Release(parent_frame3);
751
752 return hr;
753}
#define IDirect3DRM3_Load(p, a, b, c, d, e, f, g, h, i, j)
Definition: d3drm.h:432
GLbitfield flags
Definition: glext.h:7161

◆ d3drm1_LoadTexture()

static HRESULT WINAPI d3drm1_LoadTexture ( IDirect3DRM *  iface,
const char filename,
IDirect3DRMTexture **  texture 
)
static

Definition at line 630 of file d3drm.c.

632{
633 struct d3drm_texture *object;
634 HRESULT hr;
635
636 TRACE("iface %p, filename %s, texture %p.\n", iface, debugstr_a(filename), texture);
637
638 if (!texture)
639 return D3DRMERR_BADVALUE;
640
641 if (FAILED(hr = d3drm_texture_create(&object, iface)))
642 return hr;
643
644 *texture = &object->IDirect3DRMTexture_iface;
646 {
648 *texture = NULL;
649 if (!filename)
650 return D3DRMERR_BADVALUE;
651
653 }
654
655 return D3DRM_OK;
656}
#define D3DRMERR_FILENOTFOUND
Definition: d3drm.h:493
HRESULT d3drm_texture_create(struct d3drm_texture **texture, IDirect3DRM *d3drm) DECLSPEC_HIDDEN
Definition: texture.c:1412
#define IDirect3DRMTexture_InitFromFile(p, a)
Definition: d3drmobj.h:3243
#define IDirect3DRMTexture_Release(p)
Definition: d3drmobj.h:3232
const char * filename
Definition: ioapi.h:137

◆ d3drm1_LoadTextureFromResource()

static HRESULT WINAPI d3drm1_LoadTextureFromResource ( IDirect3DRM *  iface,
HRSRC  resource,
IDirect3DRMTexture **  texture 
)
static

Definition at line 658 of file d3drm.c.

660{
661 struct d3drm_texture *object;
662 HRESULT hr;
663
664 FIXME("iface %p, resource %p, texture %p stub!\n", iface, resource, texture);
665
666 if (FAILED(hr = d3drm_texture_create(&object, iface)))
667 return hr;
668
669 *texture = &object->IDirect3DRMTexture_iface;
670
671 return D3DRM_OK;
672}

◆ d3drm1_QueryInterface()

static HRESULT WINAPI d3drm1_QueryInterface ( IDirect3DRM *  iface,
REFIID  riid,
void **  out 
)
static

Definition at line 217 of file d3drm.c.

218{
219 struct d3drm *d3drm = impl_from_IDirect3DRM(iface);
220
221 TRACE("iface %p, riid %s, out %p.\n", iface, debugstr_guid(riid), out);
222
223 if (IsEqualGUID(riid, &IID_IDirect3DRM)
225 {
227 }
228 else if (IsEqualGUID(riid, &IID_IDirect3DRM2))
229 {
231 }
232 else if (IsEqualGUID(riid, &IID_IDirect3DRM3))
233 {
235 }
236 else
237 {
238 *out = NULL;
239 WARN("%s not implemented, returning CLASS_E_CLASSNOTAVAILABLE.\n", debugstr_guid(riid));
241 }
242
243 IUnknown_AddRef((IUnknown *)*out);
244 return S_OK;
245}
const GUID IID_IUnknown
#define WARN(fmt,...)
Definition: debug.h:112
REFIID riid
Definition: atlbase.h:39
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147
IDirect3DRM IDirect3DRM_iface
Definition: d3drm.c:190
#define CLASS_E_CLASSNOTAVAILABLE
Definition: winerror.h:2663

Referenced by d3drm2_QueryInterface(), and d3drm3_QueryInterface().

◆ d3drm1_Release()

static ULONG WINAPI d3drm1_Release ( IDirect3DRM *  iface)
static

Definition at line 260 of file d3drm.c.

261{
262 struct d3drm *d3drm = impl_from_IDirect3DRM(iface);
263 ULONG refcount = InterlockedDecrement(&d3drm->ref1);
264
265 TRACE("%p decreasing refcount to %u.\n", iface, refcount);
266
267 if (!refcount && !InterlockedDecrement(&d3drm->iface_count))
269
270 return refcount;
271}
#define InterlockedDecrement
Definition: armddk.h:52
static void d3drm_destroy(struct d3drm *d3drm)
Definition: d3drm.c:211

◆ d3drm1_SetDefaultTextureColors()

static HRESULT WINAPI d3drm1_SetDefaultTextureColors ( IDirect3DRM *  iface,
DWORD  color_count 
)
static

Definition at line 695 of file d3drm.c.

696{
697 FIXME("iface %p, color_count %u stub!\n", iface, color_count);
698
699 return E_NOTIMPL;
700}

◆ d3drm1_SetDefaultTextureShades()

static HRESULT WINAPI d3drm1_SetDefaultTextureShades ( IDirect3DRM *  iface,
DWORD  shade_count 
)
static

Definition at line 702 of file d3drm.c.

703{
704 FIXME("iface %p, shade_count %u stub!\n", iface, shade_count);
705
706 return E_NOTIMPL;
707}

◆ d3drm1_SetSearchPath()

static HRESULT WINAPI d3drm1_SetSearchPath ( IDirect3DRM *  iface,
const char path 
)
static

Definition at line 674 of file d3drm.c.

675{
676 FIXME("iface %p, path %s stub!\n", iface, debugstr_a(path));
677
678 return E_NOTIMPL;
679}

◆ d3drm1_Tick()

static HRESULT WINAPI d3drm1_Tick ( IDirect3DRM *  iface,
D3DVALUE  tick 
)
static

Definition at line 755 of file d3drm.c.

756{
757 FIXME("iface %p, tick %.8e stub!\n", iface, tick);
758
759 return E_NOTIMPL;
760}

◆ d3drm2_AddRef()

static ULONG WINAPI d3drm2_AddRef ( IDirect3DRM2 *  iface)
static

Definition at line 808 of file d3drm.c.

809{
810 struct d3drm *d3drm = impl_from_IDirect3DRM2(iface);
811 ULONG refcount = InterlockedIncrement(&d3drm->ref2);
812
813 TRACE("%p increasing refcount to %u.\n", iface, refcount);
814
815 if (refcount == 1)
817
818 return refcount;
819}
static struct d3drm * impl_from_IDirect3DRM2(IDirect3DRM2 *iface)
Definition: d3drm.c:201
LONG ref2
Definition: d3drm.c:193

◆ d3drm2_AddSearchPath()

static HRESULT WINAPI d3drm2_AddSearchPath ( IDirect3DRM2 *  iface,
const char path 
)
static

Definition at line 1195 of file d3drm.c.

1196{
1197 FIXME("iface %p, path %s stub!\n", iface, debugstr_a(path));
1198
1199 return E_NOTIMPL;
1200}

◆ d3drm2_CreateAnimation()

static HRESULT WINAPI d3drm2_CreateAnimation ( IDirect3DRM2 *  iface,
IDirect3DRMAnimation **  animation 
)
static

Definition at line 896 of file d3drm.c.

897{
898 struct d3drm *d3drm = impl_from_IDirect3DRM2(iface);
899
900 TRACE("iface %p, animation %p.\n", iface, animation);
901
903}
#define IDirect3DRM_CreateAnimation(p, a)
Definition: d3drm.h:118

◆ d3drm2_CreateAnimationSet()

static HRESULT WINAPI d3drm2_CreateAnimationSet ( IDirect3DRM2 *  iface,
IDirect3DRMAnimationSet **  set 
)
static

Definition at line 905 of file d3drm.c.

906{
907 FIXME("iface %p, set %p stub!\n", iface, set);
908
909 return E_NOTIMPL;
910}

◆ d3drm2_CreateDevice()

static HRESULT WINAPI d3drm2_CreateDevice ( IDirect3DRM2 *  iface,
DWORD  width,
DWORD  height,
IDirect3DRMDevice2 **  device 
)
static

Definition at line 967 of file d3drm.c.

969{
970 TRACE("iface %p, width %u, height %u, device %p.\n", iface, width, height, device);
971
972 if (!device)
973 return D3DRMERR_BADVALUE;
974 *device = NULL;
975
976 return D3DRMERR_BADDEVICE;
977}

◆ d3drm2_CreateDeviceFromClipper()

static HRESULT WINAPI d3drm2_CreateDeviceFromClipper ( IDirect3DRM2 *  iface,
IDirectDrawClipper *  clipper,
GUID guid,
int  width,
int  height,
IDirect3DRMDevice2 **  device 
)
static

Definition at line 1025 of file d3drm.c.

1028{
1029 struct d3drm *d3drm = impl_from_IDirect3DRM2(iface);
1030 IDirect3DRMDevice3 *device3;
1031 HRESULT hr;
1032
1033 TRACE("iface %p, clipper %p, guid %s, width %d, height %d, device %p.\n",
1034 iface, clipper, debugstr_guid(guid), width, height, device);
1035
1036 if (!device)
1037 return D3DRMERR_BADVALUE;
1038 *device = NULL;
1040 if (FAILED(hr))
1041 return hr;
1042
1043 hr = IDirect3DRMDevice3_QueryInterface(device3, &IID_IDirect3DRMDevice2, (void**)device);
1045
1046 return hr;
1047}
#define IDirect3DRM3_CreateDeviceFromClipper(p, a, b, c, d, e)
Definition: d3drm.h:416
#define IDirect3DRMDevice3_QueryInterface(p, a, b)
Definition: d3drmobj.h:691

◆ d3drm2_CreateDeviceFromD3D()

static HRESULT WINAPI d3drm2_CreateDeviceFromD3D ( IDirect3DRM2 *  iface,
IDirect3D2 *  d3d,
IDirect3DDevice2 *  d3d_device,
IDirect3DRMDevice2 **  device 
)
static

Definition at line 1001 of file d3drm.c.

1003{
1004 struct d3drm *d3drm = impl_from_IDirect3DRM2(iface);
1005 IDirect3DRMDevice3 *device3;
1006 HRESULT hr;
1007
1008 TRACE("iface %p, d3d %p, d3d_device %p, device %p.\n",
1009 iface, d3d, d3d_device, device);
1010
1011 if (!device)
1012 return D3DRMERR_BADVALUE;
1013 *device = NULL;
1014
1016 if (FAILED(hr))
1017 return hr;
1018
1019 hr = IDirect3DRMDevice3_QueryInterface(device3, &IID_IDirect3DRMDevice2, (void **)device);
1021
1022 return hr;
1023}
#define IDirect3DRM3_CreateDeviceFromD3D(p, a, b, c)
Definition: d3drm.h:415

◆ d3drm2_CreateDeviceFromSurface()

static HRESULT WINAPI d3drm2_CreateDeviceFromSurface ( IDirect3DRM2 *  iface,
GUID guid,
IDirectDraw *  ddraw,
IDirectDrawSurface *  backbuffer,
IDirect3DRMDevice2 **  device 
)
static

Definition at line 979 of file d3drm.c.

981{
982 struct d3drm *d3drm = impl_from_IDirect3DRM2(iface);
983 IDirect3DRMDevice3 *device3;
984 HRESULT hr;
985 TRACE("iface %p, guid %s, ddraw %p, backbuffer %p, device %p.\n",
986 iface, debugstr_guid(guid), ddraw, backbuffer, device);
987
988 if (!device)
989 return D3DRMERR_BADVALUE;
990 *device = NULL;
992 if (FAILED(hr))
993 return hr;
994
995 hr = IDirect3DRMDevice3_QueryInterface(device3, &IID_IDirect3DRMDevice2, (void**)device);
997
998 return hr;
999}
#define IDirect3DRM3_CreateDeviceFromSurface(p, a, b, c, d, e)
Definition: d3drm.h:414

◆ d3drm2_CreateFace()

static HRESULT WINAPI d3drm2_CreateFace ( IDirect3DRM2 *  iface,
IDirect3DRMFace **  face 
)
static

Definition at line 887 of file d3drm.c.

888{
889 struct d3drm *d3drm = impl_from_IDirect3DRM2(iface);
890
891 TRACE("iface %p, face %p.\n", iface, face);
892
894}
#define IDirect3DRM_CreateFace(p, a)
Definition: d3drm.h:117

◆ d3drm2_CreateFrame()

static HRESULT WINAPI d3drm2_CreateFrame ( IDirect3DRM2 *  iface,
IDirect3DRMFrame *  parent_frame,
IDirect3DRMFrame2 **  frame 
)
static

Definition at line 845 of file d3drm.c.

847{
848 struct d3drm *d3drm = impl_from_IDirect3DRM2(iface);
849 struct d3drm_frame *object;
850 HRESULT hr;
851
852 TRACE("iface %p, parent_frame %p, frame %p.\n", iface, parent_frame, frame);
853
854 if (FAILED(hr = d3drm_frame_create(&object, (IUnknown *)parent_frame, &d3drm->IDirect3DRM_iface)))
855 return hr;
856
857 *frame = &object->IDirect3DRMFrame2_iface;
858
859 return D3DRM_OK;
860}

◆ d3drm2_CreateLight()

static HRESULT WINAPI d3drm2_CreateLight ( IDirect3DRM2 *  iface,
D3DRMLIGHTTYPE  type,
D3DCOLOR  color,
IDirect3DRMLight **  light 
)
static

Definition at line 936 of file d3drm.c.

938{
939 struct d3drm *d3drm = impl_from_IDirect3DRM2(iface);
940
941 TRACE("iface %p, type %#x, color 0x%08x, light %p.\n", iface, type, color, light);
942
944}

◆ d3drm2_CreateLightRGB()

static HRESULT WINAPI d3drm2_CreateLightRGB ( IDirect3DRM2 *  iface,
D3DRMLIGHTTYPE  type,
D3DVALUE  red,
D3DVALUE  green,
D3DVALUE  blue,
IDirect3DRMLight **  light 
)
static

Definition at line 946 of file d3drm.c.

948{
949 struct d3drm *d3drm = impl_from_IDirect3DRM2(iface);
950
951 TRACE("iface %p, type %#x, red %.8e, green %.8e, blue %.8e, light %p.\n",
952 iface, type, red, green, blue, light);
953
955}

◆ d3drm2_CreateMaterial()

static HRESULT WINAPI d3drm2_CreateMaterial ( IDirect3DRM2 *  iface,
D3DVALUE  power,
IDirect3DRMMaterial **  material 
)
static

Definition at line 957 of file d3drm.c.

959{
960 struct d3drm *d3drm = impl_from_IDirect3DRM2(iface);
961
962 TRACE("iface %p, power %.8e, material %p.\n", iface, power, material);
963
964 return IDirect3DRM3_CreateMaterial(&d3drm->IDirect3DRM3_iface, power, (IDirect3DRMMaterial2 **)material);
965}

◆ d3drm2_CreateMesh()

static HRESULT WINAPI d3drm2_CreateMesh ( IDirect3DRM2 *  iface,
IDirect3DRMMesh **  mesh 
)
static

Definition at line 862 of file d3drm.c.

863{
864 struct d3drm *d3drm = impl_from_IDirect3DRM2(iface);
865
866 TRACE("iface %p, mesh %p.\n", iface, mesh);
867
869}

◆ d3drm2_CreateMeshBuilder()

static HRESULT WINAPI d3drm2_CreateMeshBuilder ( IDirect3DRM2 *  iface,
IDirect3DRMMeshBuilder2 **  mesh_builder 
)
static

Definition at line 871 of file d3drm.c.

872{
873 struct d3drm *d3drm = impl_from_IDirect3DRM2(iface);
875 HRESULT hr;
876
877 TRACE("iface %p, mesh_builder %p.\n", iface, mesh_builder);
878
880 return hr;
881
882 *mesh_builder = &object->IDirect3DRMMeshBuilder2_iface;
883
884 return S_OK;
885}
HRESULT d3drm_mesh_builder_create(struct d3drm_mesh_builder **mesh_builder, IDirect3DRM *d3drm) DECLSPEC_HIDDEN
Definition: meshbuilder.c:2334

◆ d3drm2_CreateObject()

static HRESULT WINAPI d3drm2_CreateObject ( IDirect3DRM2 *  iface,
REFCLSID  clsid,
IUnknown outer,
REFIID  iid,
void **  out 
)
static

Definition at line 834 of file d3drm.c.

836{
837 struct d3drm *d3drm = impl_from_IDirect3DRM2(iface);
838
839 TRACE("iface %p, clsid %s, outer %p, iid %s, out %p.\n",
840 iface, debugstr_guid(clsid), outer, debugstr_guid(iid), out);
841
843}

◆ d3drm2_CreateProgressiveMesh()

static HRESULT WINAPI d3drm2_CreateProgressiveMesh ( IDirect3DRM2 *  iface,
IDirect3DRMProgressiveMesh **  mesh 
)
static

Definition at line 1276 of file d3drm.c.

1277{
1278 FIXME("iface %p, mesh %p stub!\n", iface, mesh);
1279
1280 return E_NOTIMPL;
1281}

◆ d3drm2_CreateShadow()

static HRESULT WINAPI d3drm2_CreateShadow ( IDirect3DRM2 *  iface,
IDirect3DRMVisual *  visual,
IDirect3DRMLight *  light,
D3DVALUE  px,
D3DVALUE  py,
D3DVALUE  pz,
D3DVALUE  nx,
D3DVALUE  ny,
D3DVALUE  nz,
IDirect3DRMVisual **  shadow 
)
static

Definition at line 1073 of file d3drm.c.

1076{
1077 FIXME("iface %p, visual %p, light %p, px %.8e, py %.8e, pz %.8e, nx %.8e, ny %.8e, nz %.8e, shadow %p stub!\n",
1078 iface, visual, light, px, py, pz, nx, ny, nz, shadow);
1079
1080 return E_NOTIMPL;
1081}

◆ d3drm2_CreateTexture()

static HRESULT WINAPI d3drm2_CreateTexture ( IDirect3DRM2 *  iface,
D3DRMIMAGE image,
IDirect3DRMTexture2 **  texture 
)
static

Definition at line 912 of file d3drm.c.

914{
915 struct d3drm *d3drm = impl_from_IDirect3DRM2(iface);
916 IDirect3DRMTexture3 *texture3;
917 HRESULT hr;
918
919 TRACE("iface %p, image %p, texture %p.\n", iface, image, texture);
920
921 if (!texture)
922 return D3DRMERR_BADVALUE;
923
925 {
926 *texture = NULL;
927 return hr;
928 }
929
930 hr = IDirect3DRMTexture3_QueryInterface(texture3, &IID_IDirect3DRMTexture2, (void **)texture);
932
933 return hr;
934}

◆ d3drm2_CreateTextureFromSurface()

static HRESULT WINAPI d3drm2_CreateTextureFromSurface ( IDirect3DRM2 *  iface,
IDirectDrawSurface *  surface,
IDirect3DRMTexture2 **  texture 
)
static

Definition at line 1049 of file d3drm.c.

1051{
1052 struct d3drm *d3drm = impl_from_IDirect3DRM2(iface);
1053 IDirect3DRMTexture3 *texture3;
1054 HRESULT hr;
1055
1056 TRACE("iface %p, surface %p, texture %p.\n", iface, surface, texture);
1057
1058 if (!texture)
1059 return D3DRMERR_BADVALUE;
1060
1062 {
1063 *texture = NULL;
1064 return hr;
1065 }
1066
1067 hr = IDirect3DRMTexture3_QueryInterface(texture3, &IID_IDirect3DRMTexture, (void **)texture);
1069
1070 return hr;
1071}

◆ d3drm2_CreateUserVisual()

static HRESULT WINAPI d3drm2_CreateUserVisual ( IDirect3DRM2 *  iface,
D3DRMUSERVISUALCALLBACK  cb,
void ctx,
IDirect3DRMUserVisual **  visual 
)
static

Definition at line 1138 of file d3drm.c.

1140{
1141 FIXME("iface %p, cb %p, ctx %p, visual %p stub!\n", iface, cb, ctx, visual);
1142
1143 return E_NOTIMPL;
1144}

◆ d3drm2_CreateViewport()

static HRESULT WINAPI d3drm2_CreateViewport ( IDirect3DRM2 *  iface,
IDirect3DRMDevice *  device,
IDirect3DRMFrame *  camera,
DWORD  x,
DWORD  y,
DWORD  width,
DWORD  height,
IDirect3DRMViewport **  viewport 
)
static

Definition at line 1083 of file d3drm.c.

1085{
1086 struct d3drm *d3drm = impl_from_IDirect3DRM2(iface);
1087 IDirect3DRMDevice3 *device3;
1088 IDirect3DRMFrame3 *camera3;
1089 IDirect3DRMViewport2 *viewport2;
1090 HRESULT hr;
1091
1092 TRACE("iface %p, device %p, camera %p, x %u, y %u, width %u, height %u, viewport %p.\n",
1093 iface, device, camera, x, y, width, height, viewport);
1094
1095 if (!viewport)
1096 return D3DRMERR_BADVALUE;
1097 *viewport = NULL;
1098
1099 if (!device || !camera)
1100 return D3DRMERR_BADOBJECT;
1101
1102 if (FAILED(hr = IDirect3DRMDevice_QueryInterface(device, &IID_IDirect3DRMDevice3, (void **)&device3)))
1103 return hr;
1104
1105 if (FAILED(hr = IDirect3DRMFrame_QueryInterface(camera, &IID_IDirect3DRMFrame3, (void **)&camera3)))
1106 {
1108 return hr;
1109 }
1110
1111 hr = IDirect3DRM3_CreateViewport(&d3drm->IDirect3DRM3_iface, device3, camera3, x, y, width, height, &viewport2);
1114 if (FAILED(hr))
1115 return hr;
1116
1117 hr = IDirect3DRMViewport2_QueryInterface(viewport2, &IID_IDirect3DRMViewport, (void **)viewport);
1119
1120 return hr;
1121}

◆ d3drm2_CreateWrap()

static HRESULT WINAPI d3drm2_CreateWrap ( IDirect3DRM2 *  iface,
D3DRMWRAPTYPE  type,
IDirect3DRMFrame *  frame,
D3DVALUE  ox,
D3DVALUE  oy,
D3DVALUE  oz,
D3DVALUE  dx,
D3DVALUE  dy,
D3DVALUE  dz,
D3DVALUE  ux,
D3DVALUE  uy,
D3DVALUE  uz,
D3DVALUE  ou,
D3DVALUE  ov,
D3DVALUE  su,
D3DVALUE  sv,
IDirect3DRMWrap **  wrap 
)
static

Definition at line 1123 of file d3drm.c.

1127{
1128 struct d3drm *d3drm = impl_from_IDirect3DRM2(iface);
1129
1130 TRACE("iface %p, type %#x, frame %p, ox %.8e, oy %.8e, oz %.8e, dx %.8e, dy %.8e, dz %.8e, "
1131 "ux %.8e, uy %.8e, uz %.8e, ou %.8e, ov %.8e, su %.8e, sv %.8e, wrap %p.\n",
1132 iface, type, frame, ox, oy, oz, dx, dy, dz, ux, uy, uz, ou, ov, su, sv, wrap);
1133
1134 return IDirect3DRM_CreateWrap(&d3drm->IDirect3DRM_iface, type, frame, ox, oy, oz, dx, dy, dz, ux, uy, uz,
1135 ou, ov, su, sv, wrap);
1136}
#define IDirect3DRM_CreateWrap(p, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, q)
Definition: d3drm.h:131

◆ d3drm2_EnumerateObjects()

static HRESULT WINAPI d3drm2_EnumerateObjects ( IDirect3DRM2 *  iface,
D3DRMOBJECTCALLBACK  cb,
void ctx 
)
static

Definition at line 1238 of file d3drm.c.

1239{
1240 FIXME("iface %p, cb %p, ctx %p stub!\n", iface, cb, ctx);
1241
1242 return E_NOTIMPL;
1243}

◆ d3drm2_GetDevices()

static HRESULT WINAPI d3drm2_GetDevices ( IDirect3DRM2 *  iface,
IDirect3DRMDeviceArray **  array 
)
static

Definition at line 1223 of file d3drm.c.

1224{
1225 FIXME("iface %p, array %p stub!\n", iface, array);
1226
1227 return E_NOTIMPL;
1228}

◆ d3drm2_GetNamedObject()

static HRESULT WINAPI d3drm2_GetNamedObject ( IDirect3DRM2 *  iface,
const char name,
IDirect3DRMObject **  object 
)
static

Definition at line 1230 of file d3drm.c.

1232{
1233 FIXME("iface %p, name %s, object %p stub!\n", iface, debugstr_a(name), object);
1234
1235 return E_NOTIMPL;
1236}

◆ d3drm2_GetSearchPath()

static HRESULT WINAPI d3drm2_GetSearchPath ( IDirect3DRM2 *  iface,
DWORD size,
char path 
)
static

Definition at line 1202 of file d3drm.c.

1203{
1204 FIXME("iface %p, size %p, path %p stub!\n", iface, size, path);
1205
1206 return E_NOTIMPL;
1207}

◆ d3drm2_Load()

static HRESULT WINAPI d3drm2_Load ( IDirect3DRM2 *  iface,
void source,
void object_id,
IID **  iids,
DWORD  iid_count,
D3DRMLOADOPTIONS  flags,
D3DRMLOADCALLBACK  load_cb,
void load_ctx,
D3DRMLOADTEXTURECALLBACK  load_tex_cb,
void load_tex_ctx,
IDirect3DRMFrame *  parent_frame 
)
static

Definition at line 1245 of file d3drm.c.

1248{
1249 struct d3drm *d3drm = impl_from_IDirect3DRM2(iface);
1250 IDirect3DRMFrame3 *parent_frame3 = NULL;
1252
1253 TRACE("iface %p, source %p, object_id %p, iids %p, iid_count %u, flags %#x, "
1254 "load_cb %p, load_ctx %p, load_tex_cb %p, load_tex_ctx %p, parent_frame %p.\n",
1255 iface, source, object_id, iids, iid_count, flags,
1256 load_cb, load_ctx, load_tex_cb, load_tex_ctx, parent_frame);
1257
1258 if (parent_frame)
1259 hr = IDirect3DRMFrame_QueryInterface(parent_frame, &IID_IDirect3DRMFrame3, (void **)&parent_frame3);
1260 if (SUCCEEDED(hr))
1261 hr = IDirect3DRM3_Load(&d3drm->IDirect3DRM3_iface, source, object_id, iids, iid_count,
1262 flags, load_cb, load_ctx, load_tex_cb, load_tex_ctx, parent_frame3);
1263 if (parent_frame3)
1264 IDirect3DRMFrame3_Release(parent_frame3);
1265
1266 return hr;
1267}

◆ d3drm2_LoadTexture()

static HRESULT WINAPI d3drm2_LoadTexture ( IDirect3DRM2 *  iface,
const char filename,
IDirect3DRMTexture2 **  texture 
)
static

Definition at line 1146 of file d3drm.c.

1148{
1149 struct d3drm *d3drm = impl_from_IDirect3DRM2(iface);
1150 IDirect3DRMTexture3 *texture3;
1151 HRESULT hr;
1152
1153 TRACE("iface %p, filename %s, texture %p.\n", iface, debugstr_a(filename), texture);
1154
1155 if (!texture)
1156 return D3DRMERR_BADVALUE;
1157
1159 {
1160 *texture = NULL;
1161 return hr;
1162 }
1163
1164 hr = IDirect3DRMTexture3_QueryInterface(texture3, &IID_IDirect3DRMTexture2, (void **)texture);
1166
1167 return hr;
1168}
#define IDirect3DRM3_LoadTexture(p, a, b)
Definition: d3drm.h:422

◆ d3drm2_LoadTextureFromResource()

static HRESULT WINAPI d3drm2_LoadTextureFromResource ( IDirect3DRM2 *  iface,
HMODULE  module,
const char resource_name,
const char resource_type,
IDirect3DRMTexture2 **  texture 
)
static

Definition at line 1170 of file d3drm.c.

1172{
1173 struct d3drm *d3drm = impl_from_IDirect3DRM2(iface);
1174 struct d3drm_texture *object;
1175 HRESULT hr;
1176
1177 FIXME("iface %p, resource_name %s, resource_type %s, texture %p stub!\n",
1178 iface, debugstr_a(resource_name), debugstr_a(resource_type), texture);
1179
1181 return hr;
1182
1183 *texture = &object->IDirect3DRMTexture2_iface;
1184
1185 return D3DRM_OK;
1186}

◆ d3drm2_QueryInterface()

static HRESULT WINAPI d3drm2_QueryInterface ( IDirect3DRM2 *  iface,
REFIID  riid,
void **  out 
)
static

Definition at line 801 of file d3drm.c.

802{
803 struct d3drm *d3drm = impl_from_IDirect3DRM2(iface);
804
806}
static HRESULT WINAPI d3drm1_QueryInterface(IDirect3DRM *iface, REFIID riid, void **out)
Definition: d3drm.c:217

◆ d3drm2_Release()

static ULONG WINAPI d3drm2_Release ( IDirect3DRM2 *  iface)
static

Definition at line 821 of file d3drm.c.

822{
823 struct d3drm *d3drm = impl_from_IDirect3DRM2(iface);
824 ULONG refcount = InterlockedDecrement(&d3drm->ref2);
825
826 TRACE("%p decreasing refcount to %u.\n", iface, refcount);
827
828 if (!refcount && !InterlockedDecrement(&d3drm->iface_count))
830
831 return refcount;
832}

◆ d3drm2_SetDefaultTextureColors()

static HRESULT WINAPI d3drm2_SetDefaultTextureColors ( IDirect3DRM2 *  iface,
DWORD  color_count 
)
static

Definition at line 1209 of file d3drm.c.

1210{
1211 FIXME("iface %p, color_count %u stub!\n", iface, color_count);
1212
1213 return E_NOTIMPL;
1214}

◆ d3drm2_SetDefaultTextureShades()

static HRESULT WINAPI d3drm2_SetDefaultTextureShades ( IDirect3DRM2 *  iface,
DWORD  shade_count 
)
static

Definition at line 1216 of file d3drm.c.

1217{
1218 FIXME("iface %p, shade_count %u stub!\n", iface, shade_count);
1219
1220 return E_NOTIMPL;
1221}

◆ d3drm2_SetSearchPath()

static HRESULT WINAPI d3drm2_SetSearchPath ( IDirect3DRM2 *  iface,
const char path 
)
static

Definition at line 1188 of file d3drm.c.

1189{
1190 FIXME("iface %p, path %s stub!\n", iface, debugstr_a(path));
1191
1192 return E_NOTIMPL;
1193}

◆ d3drm2_Tick()

static HRESULT WINAPI d3drm2_Tick ( IDirect3DRM2 *  iface,
D3DVALUE  tick 
)
static

Definition at line 1269 of file d3drm.c.

1270{
1271 FIXME("iface %p, tick %.8e stub!\n", iface, tick);
1272
1273 return E_NOTIMPL;
1274}

◆ d3drm3_AddRef()

static ULONG WINAPI d3drm3_AddRef ( IDirect3DRM3 *  iface)
static

Definition at line 1330 of file d3drm.c.

1331{
1332 struct d3drm *d3drm = impl_from_IDirect3DRM3(iface);
1333 ULONG refcount = InterlockedIncrement(&d3drm->ref3);
1334
1335 TRACE("%p increasing refcount to %u.\n", iface, refcount);
1336
1337 if (refcount == 1)
1339
1340 return refcount;
1341}
static struct d3drm * impl_from_IDirect3DRM3(IDirect3DRM3 *iface)
Definition: d3drm.c:206
LONG ref3
Definition: d3drm.c:193

◆ d3drm3_AddSearchPath()

static HRESULT WINAPI d3drm3_AddSearchPath ( IDirect3DRM3 *  iface,
const char path 
)
static

Definition at line 1873 of file d3drm.c.

1874{
1875 FIXME("iface %p, path %s stub!\n", iface, debugstr_a(path));
1876
1877 return E_NOTIMPL;
1878}

◆ d3drm3_CreateAnimation()

static HRESULT WINAPI d3drm3_CreateAnimation ( IDirect3DRM3 *  iface,
IDirect3DRMAnimation2 **  animation 
)
static

Definition at line 1495 of file d3drm.c.

1496{
1497 struct d3drm *d3drm = impl_from_IDirect3DRM3(iface);
1498 struct d3drm_animation *object;
1499 HRESULT hr;
1500
1501 TRACE("iface %p, animation %p.\n", iface, animation);
1502
1504 return hr;
1505
1506 *animation = &object->IDirect3DRMAnimation2_iface;
1507
1508 return hr;
1509}

◆ d3drm3_CreateAnimationSet()

static HRESULT WINAPI d3drm3_CreateAnimationSet ( IDirect3DRM3 *  iface,
IDirect3DRMAnimationSet2 **  set 
)
static

Definition at line 1511 of file d3drm.c.

1512{
1513 FIXME("iface %p, set %p stub!\n", iface, set);
1514
1515 return E_NOTIMPL;
1516}

◆ d3drm3_CreateClippedVisual()

static HRESULT WINAPI d3drm3_CreateClippedVisual ( IDirect3DRM3 *  iface,
IDirect3DRMVisual *  visual,
IDirect3DRMClippedVisual **  clipped_visual 
)
static

Definition at line 2255 of file d3drm.c.

2257{
2258 FIXME("iface %p, visual %p, clipped_visual %p stub!\n", iface, visual, clipped_visual);
2259
2260 return E_NOTIMPL;
2261}

◆ d3drm3_CreateDevice()

static HRESULT WINAPI d3drm3_CreateDevice ( IDirect3DRM3 *  iface,
DWORD  width,
DWORD  height,
IDirect3DRMDevice3 **  device 
)
static

Definition at line 1603 of file d3drm.c.

1605{
1606 TRACE("iface %p, width %u, height %u, device %p.\n", iface, width, height, device);
1607
1608 if (!device)
1609 return D3DRMERR_BADVALUE;
1610 *device = NULL;
1611
1612 return D3DRMERR_BADDEVICE;
1613}

◆ d3drm3_CreateDeviceFromClipper()

static HRESULT WINAPI d3drm3_CreateDeviceFromClipper ( IDirect3DRM3 *  iface,
IDirectDrawClipper *  clipper,
GUID guid,
int  width,
int  height,
IDirect3DRMDevice3 **  device 
)
static

Definition at line 1673 of file d3drm.c.

1676{
1677 struct d3drm *d3drm = impl_from_IDirect3DRM3(iface);
1678 struct d3drm_device *object;
1679 IDirectDraw *ddraw;
1680 IDirectDrawSurface *render_target;
1681 HRESULT hr;
1682
1683 TRACE("iface %p, clipper %p, guid %s, width %d, height %d, device %p.\n",
1685
1686 if (!device)
1687 return D3DRMERR_BADVALUE;
1688 *device = NULL;
1689
1690 if (!clipper || !width || !height)
1691 return D3DRMERR_BADVALUE;
1692
1694 if (FAILED(hr))
1695 return hr;
1696
1698 {
1699 IDirectDraw_Release(ddraw);
1700 return hr;
1701 }
1702
1704 if (FAILED(hr))
1705 {
1706 IDirectDraw_Release(ddraw);
1707 d3drm_device_destroy(object);
1708 return hr;
1709 }
1710
1712 IDirectDraw_Release(ddraw);
1713 IDirectDrawSurface_Release(render_target);
1714 if (FAILED(hr))
1715 d3drm_device_destroy(object);
1716 else
1717 *device = &object->IDirect3DRMDevice3_iface;
1718
1719 return hr;
1720}

◆ d3drm3_CreateDeviceFromD3D()

static HRESULT WINAPI d3drm3_CreateDeviceFromD3D ( IDirect3DRM3 *  iface,
IDirect3D2 *  d3d,
IDirect3DDevice2 *  d3d_device,
IDirect3DRMDevice3 **  device 
)
static

Definition at line 1646 of file d3drm.c.

1648{
1649 struct d3drm *d3drm = impl_from_IDirect3DRM3(iface);
1650 struct d3drm_device *object;
1651 HRESULT hr;
1652
1653 TRACE("iface %p, d3d %p, d3d_device %p, device %p.\n",
1654 iface, d3d, d3d_device, device);
1655
1656 if (!device)
1657 return D3DRMERR_BADVALUE;
1658 *device = NULL;
1659
1661 return hr;
1662
1663 if (FAILED(hr = IDirect3DRMDevice3_InitFromD3D2(&object->IDirect3DRMDevice3_iface, d3d, d3d_device)))
1664 {
1665 d3drm_device_destroy(object);
1666 return hr;
1667 }
1668 *device = &object->IDirect3DRMDevice3_iface;
1669
1670 return D3DRM_OK;
1671}
#define IDirect3DRMDevice3_InitFromD3D2(p, a, b)
Definition: d3drmobj.h:728

◆ d3drm3_CreateDeviceFromSurface()

static HRESULT WINAPI d3drm3_CreateDeviceFromSurface ( IDirect3DRM3 *  iface,
GUID guid,
IDirectDraw *  ddraw,
IDirectDrawSurface *  backbuffer,
DWORD  flags,
IDirect3DRMDevice3 **  device 
)
static

Definition at line 1615 of file d3drm.c.

1617{
1618 struct d3drm *d3drm = impl_from_IDirect3DRM3(iface);
1619 struct d3drm_device *object;
1620 BOOL use_z_surface;
1621 HRESULT hr;
1622
1623 TRACE("iface %p, guid %s, ddraw %p, backbuffer %p, flags %#x, device %p.\n",
1624 iface, debugstr_guid(guid), ddraw, backbuffer, flags, device);
1625
1626 if (!device)
1627 return D3DRMERR_BADVALUE;
1628 *device = NULL;
1629
1630 if (!backbuffer || !ddraw)
1631 return D3DRMERR_BADDEVICE;
1632
1634 return hr;
1635
1636 use_z_surface = !(flags & D3DRMDEVICE_NOZBUFFER);
1637
1638 if (SUCCEEDED(hr = d3drm_device_init(object, 3, ddraw, backbuffer, use_z_surface)))
1639 *device = &object->IDirect3DRMDevice3_iface;
1640 else
1641 d3drm_device_destroy(object);
1642
1643 return hr;
1644}
#define D3DRMDEVICE_NOZBUFFER
Definition: d3drmdef.h:271
unsigned int BOOL
Definition: ntddk_ex.h:94

◆ d3drm3_CreateFace()

static HRESULT WINAPI d3drm3_CreateFace ( IDirect3DRM3 *  iface,
IDirect3DRMFace2 **  face 
)
static

Definition at line 1478 of file d3drm.c.

1479{
1480 struct d3drm *d3drm = impl_from_IDirect3DRM3(iface);
1481 IDirect3DRMFace *face1;
1482 HRESULT hr;
1483
1484 TRACE("iface %p, face %p.\n", iface, face);
1485
1487 return hr;
1488
1489 hr = IDirect3DRMFace_QueryInterface(face1, &IID_IDirect3DRMFace2, (void **)face);
1491
1492 return hr;
1493}
#define IDirect3DRMFace_Release(p)
Definition: d3drmobj.h:2310
#define IDirect3DRMFace_QueryInterface(p, a, b)
Definition: d3drmobj.h:2308

◆ d3drm3_CreateFrame()

static HRESULT WINAPI d3drm3_CreateFrame ( IDirect3DRM3 *  iface,
IDirect3DRMFrame3 *  parent,
IDirect3DRMFrame3 **  frame 
)
static

Definition at line 1429 of file d3drm.c.

1431{
1432 struct d3drm *d3drm = impl_from_IDirect3DRM3(iface);
1433 struct d3drm_frame *object;
1434 HRESULT hr;
1435
1436 TRACE("iface %p, parent %p, frame %p.\n", iface, parent, frame);
1437
1439 return hr;
1440
1441 *frame = &object->IDirect3DRMFrame3_iface;
1442
1443 return D3DRM_OK;
1444}
r parent
Definition: btrfs.c:3010

◆ d3drm3_CreateLight()

static HRESULT WINAPI d3drm3_CreateLight ( IDirect3DRM3 *  iface,
D3DRMLIGHTTYPE  type,
D3DCOLOR  color,
IDirect3DRMLight **  light 
)
static

Definition at line 1545 of file d3drm.c.

1547{
1548 struct d3drm *d3drm = impl_from_IDirect3DRM3(iface);
1549 struct d3drm_light *object;
1550 HRESULT hr;
1551
1552 FIXME("iface %p, type %#x, color 0x%08x, light %p partial stub!\n", iface, type, color, light);
1553
1555 {
1556 IDirect3DRMLight_SetType(&object->IDirect3DRMLight_iface, type);
1557 IDirect3DRMLight_SetColor(&object->IDirect3DRMLight_iface, color);
1558 }
1559
1560 *light = &object->IDirect3DRMLight_iface;
1561
1562 return hr;
1563}
HRESULT d3drm_light_create(struct d3drm_light **light, IDirect3DRM *d3drm) DECLSPEC_HIDDEN
Definition: light.c:371
#define IDirect3DRMLight_SetType(p, a)
Definition: d3drmobj.h:3131
#define IDirect3DRMLight_SetColor(p, a)
Definition: d3drmobj.h:3132

◆ d3drm3_CreateLightRGB()

static HRESULT WINAPI d3drm3_CreateLightRGB ( IDirect3DRM3 *  iface,
D3DRMLIGHTTYPE  type,
D3DVALUE  red,
D3DVALUE  green,
D3DVALUE  blue,
IDirect3DRMLight **  light 
)
static

Definition at line 1565 of file d3drm.c.

1567{
1568 struct d3drm *d3drm = impl_from_IDirect3DRM3(iface);
1569 struct d3drm_light *object;
1570 HRESULT hr;
1571
1572 FIXME("iface %p, type %#x, red %.8e, green %.8e, blue %.8e, light %p partial stub!\n",
1573 iface, type, red, green, blue, light);
1574
1576 {
1577 IDirect3DRMLight_SetType(&object->IDirect3DRMLight_iface, type);
1578 IDirect3DRMLight_SetColorRGB(&object->IDirect3DRMLight_iface, red, green, blue);
1579 }
1580
1581 *light = &object->IDirect3DRMLight_iface;
1582
1583 return hr;
1584}
#define IDirect3DRMLight_SetColorRGB(p, a, b, c)
Definition: d3drmobj.h:3133

◆ d3drm3_CreateMaterial()

static HRESULT WINAPI d3drm3_CreateMaterial ( IDirect3DRM3 *  iface,
D3DVALUE  power,
IDirect3DRMMaterial2 **  material 
)
static

Definition at line 1586 of file d3drm.c.

1588{
1589 struct d3drm *d3drm = impl_from_IDirect3DRM3(iface);
1590 struct d3drm_material *object;
1591 HRESULT hr;
1592
1593 TRACE("iface %p, power %.8e, material %p.\n", iface, power, material);
1594
1596 IDirect3DRMMaterial2_SetPower(&object->IDirect3DRMMaterial2_iface, power);
1597
1598 *material = &object->IDirect3DRMMaterial2_iface;
1599
1600 return hr;
1601}
HRESULT d3drm_material_create(struct d3drm_material **material, IDirect3DRM *d3drm) DECLSPEC_HIDDEN
Definition: material.c:279
#define IDirect3DRMMaterial2_SetPower(p, a)
Definition: d3drmobj.h:3743

◆ d3drm3_CreateMesh()

static HRESULT WINAPI d3drm3_CreateMesh ( IDirect3DRM3 *  iface,
IDirect3DRMMesh **  mesh 
)
static

Definition at line 1446 of file d3drm.c.

1447{
1448 struct d3drm *d3drm = impl_from_IDirect3DRM3(iface);
1449 struct d3drm_mesh *object;
1450 HRESULT hr;
1451
1452 TRACE("iface %p, mesh %p.\n", iface, mesh);
1453
1455 return hr;
1456
1457 *mesh = &object->IDirect3DRMMesh_iface;
1458
1459 return S_OK;
1460}
HRESULT d3drm_mesh_create(struct d3drm_mesh **mesh, IDirect3DRM *d3drm) DECLSPEC_HIDDEN
Definition: meshbuilder.c:2833

◆ d3drm3_CreateMeshBuilder()

static HRESULT WINAPI d3drm3_CreateMeshBuilder ( IDirect3DRM3 *  iface,
IDirect3DRMMeshBuilder3 **  mesh_builder 
)
static

Definition at line 1462 of file d3drm.c.

1463{
1464 struct d3drm *d3drm = impl_from_IDirect3DRM3(iface);
1465 struct d3drm_mesh_builder *object;
1466 HRESULT hr;
1467
1468 TRACE("iface %p, mesh_builder %p.\n", iface, mesh_builder);
1469
1471 return hr;
1472
1473 *mesh_builder = &object->IDirect3DRMMeshBuilder3_iface;
1474
1475 return S_OK;
1476}

◆ d3drm3_CreateObject()

static HRESULT WINAPI d3drm3_CreateObject ( IDirect3DRM3 *  iface,
REFCLSID  clsid,
IUnknown outer,
REFIID  iid,
void **  out 
)
static

Definition at line 1356 of file d3drm.c.

1358{
1359 struct d3drm *d3drm = impl_from_IDirect3DRM3(iface);
1361 unsigned int i;
1362 HRESULT hr;
1363
1364 static const struct
1365 {
1366 const CLSID *clsid;
1367 HRESULT (*create_object)(void **object, IDirect3DRM *d3drm);
1368 }
1369 object_table[] =
1370 {
1371 {&CLSID_CDirect3DRMTexture, d3drm_create_texture_object},
1372 {&CLSID_CDirect3DRMDevice, d3drm_create_device_object},
1373 {&CLSID_CDirect3DRMViewport, d3drm_create_viewport_object},
1374 {&CLSID_CDirect3DRMFace, d3drm_create_face_object},
1375 {&CLSID_CDirect3DRMMeshBuilder, d3drm_create_mesh_builder_object},
1376 {&CLSID_CDirect3DRMFrame, d3drm_create_frame_object},
1377 {&CLSID_CDirect3DRMLight, d3drm_create_light_object},
1378 {&CLSID_CDirect3DRMMaterial, d3drm_create_material_object},
1379 {&CLSID_CDirect3DRMMesh, d3drm_create_mesh_object},
1380 {&CLSID_CDirect3DRMAnimation, d3drm_create_animation_object},
1381 {&CLSID_CDirect3DRMWrap, d3drm_create_wrap_object},
1382 };
1383
1384 TRACE("iface %p, clsid %s, outer %p, iid %s, out %p.\n",
1385 iface, debugstr_guid(clsid), outer, debugstr_guid(iid), out);
1386
1387 if (!out)
1388 return D3DRMERR_BADVALUE;
1389
1390 if (!clsid || !iid)
1391 {
1392 *out = NULL;
1393 return D3DRMERR_BADVALUE;
1394 }
1395
1396 if (outer)
1397 {
1398 FIXME("COM aggregation for outer IUnknown (%p) not implemented. Returning E_NOTIMPL.\n", outer);
1399 *out = NULL;
1400 return E_NOTIMPL;
1401 }
1402
1403 for (i = 0; i < ARRAY_SIZE(object_table); ++i)
1404 {
1405 if (IsEqualGUID(clsid, object_table[i].clsid))
1406 {
1407 if (FAILED(hr = object_table[i].create_object((void **)&object, &d3drm->IDirect3DRM_iface)))
1408 {
1409 *out = NULL;
1410 return hr;
1411 }
1412 break;
1413 }
1414 }
1415 if (i == ARRAY_SIZE(object_table))
1416 {
1417 FIXME("%s not implemented. Returning CLASSFACTORY_E_FIRST.\n", debugstr_guid(clsid));
1418 *out = NULL;
1419 return CLASSFACTORY_E_FIRST;
1420 }
1421
1422 if (FAILED(hr = IUnknown_QueryInterface(object, iid, out)))
1423 *out = NULL;
1424 IUnknown_Release(object);
1425
1426 return hr;
1427}
#define ARRAY_SIZE(A)
Definition: main.h:33
static HRESULT d3drm_create_device_object(void **object, IDirect3DRM *d3drm)
Definition: d3drm.c:58
static HRESULT d3drm_create_material_object(void **object, IDirect3DRM *d3drm)
Definition: d3drm.c:136
static HRESULT d3drm_create_texture_object(void **object, IDirect3DRM *d3drm)
Definition: d3drm.c:45
static HRESULT d3drm_create_light_object(void **object, IDirect3DRM *d3drm)
Definition: d3drm.c:123
static HRESULT d3drm_create_face_object(void **object, IDirect3DRM *d3drm)
Definition: d3drm.c:84
static HRESULT d3drm_create_mesh_builder_object(void **object, IDirect3DRM *d3drm)
Definition: d3drm.c:97
static HRESULT d3drm_create_animation_object(void **object, IDirect3DRM *d3drm)
Definition: d3drm.c:162
static HRESULT d3drm_create_frame_object(void **object, IDirect3DRM *d3drm)
Definition: d3drm.c:110
static HRESULT d3drm_create_wrap_object(void **object, IDirect3DRM *d3drm)
Definition: d3drm.c:175
static HRESULT d3drm_create_mesh_object(void **object, IDirect3DRM *d3drm)
Definition: d3drm.c:149
static HRESULT d3drm_create_viewport_object(void **object, IDirect3DRM *d3drm)
Definition: d3drm.c:71
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
HRESULT create_object(script_ctx_t *, jsdisp_t *, jsdisp_t **) DECLSPEC_HIDDEN
Definition: object.c:731
#define HRESULT
Definition: msvc.h:7
#define CLASSFACTORY_E_FIRST
Definition: winerror.h:2661

◆ d3drm3_CreateProgressiveMesh()

static HRESULT WINAPI d3drm3_CreateProgressiveMesh ( IDirect3DRM3 *  iface,
IDirect3DRMProgressiveMesh **  mesh 
)
static

Definition at line 2234 of file d3drm.c.

2235{
2236 FIXME("iface %p, mesh %p stub!\n", iface, mesh);
2237
2238 return E_NOTIMPL;
2239}

◆ d3drm3_CreateShadow()

static HRESULT WINAPI d3drm3_CreateShadow ( IDirect3DRM3 *  iface,
IUnknown object,
IDirect3DRMLight *  light,
D3DVALUE  px,
D3DVALUE  py,
D3DVALUE  pz,
D3DVALUE  nx,
D3DVALUE  ny,
D3DVALUE  nz,
IDirect3DRMShadow2 **  shadow 
)
static

Definition at line 1722 of file d3drm.c.

1724{
1725 FIXME("iface %p, object %p, light %p, px %.8e, py %.8e, pz %.8e, nx %.8e, ny %.8e, nz %.8e, shadow %p stub!\n",
1726 iface, object, light, px, py, pz, nx, ny, nz, shadow);
1727
1728 return E_NOTIMPL;
1729}

◆ d3drm3_CreateTexture()

static HRESULT WINAPI d3drm3_CreateTexture ( IDirect3DRM3 *  iface,
D3DRMIMAGE image,
IDirect3DRMTexture3 **  texture 
)
static

Definition at line 1518 of file d3drm.c.

1520{
1521 struct d3drm *d3drm = impl_from_IDirect3DRM3(iface);
1522 struct d3drm_texture *object;
1523 HRESULT hr;
1524
1525 TRACE("iface %p, image %p, texture %p.\n", iface, image, texture);
1526
1527 if (!texture)
1528 return D3DRMERR_BADVALUE;
1529
1531 return hr;
1532
1533 *texture = &object->IDirect3DRMTexture3_iface;
1534
1536 {
1538 *texture = NULL;
1539 return D3DRMERR_BADVALUE;
1540 }
1541
1542 return D3DRM_OK;
1543}
#define IDirect3DRMTexture3_InitFromImage(p, a)
Definition: d3drmobj.h:3506

◆ d3drm3_CreateTextureFromSurface()

static HRESULT WINAPI d3drm3_CreateTextureFromSurface ( IDirect3DRM3 *  iface,
IDirectDrawSurface *  surface,
IDirect3DRMTexture3 **  texture 
)
static

Definition at line 1731 of file d3drm.c.

1733{
1734 struct d3drm *d3drm = impl_from_IDirect3DRM3(iface);
1735 struct d3drm_texture *object;
1736 HRESULT hr;
1737
1738 TRACE("iface %p, surface %p, texture %p.\n", iface, surface, texture);
1739
1740 if (!texture)
1741 return D3DRMERR_BADVALUE;
1742
1744 return hr;
1745
1746 *texture = &object->IDirect3DRMTexture3_iface;
1747
1749 {
1751 *texture = NULL;
1752 return D3DRMERR_BADVALUE;
1753 }
1754
1755 return D3DRM_OK;
1756}
#define IDirect3DRMTexture3_InitFromSurface(p, a)
Definition: d3drmobj.h:3488
IDirectDrawSurface * surface
Definition: d3drm_private.h:66

◆ d3drm3_CreateUserVisual()

static HRESULT WINAPI d3drm3_CreateUserVisual ( IDirect3DRM3 *  iface,
D3DRMUSERVISUALCALLBACK  cb,
void ctx,
IDirect3DRMUserVisual **  visual 
)
static

Definition at line 1814 of file d3drm.c.

1816{
1817 FIXME("iface %p, cb %p, ctx %p, visual %p stub!\n", iface, cb, ctx, visual);
1818
1819 return E_NOTIMPL;
1820}

◆ d3drm3_CreateViewport()

static HRESULT WINAPI d3drm3_CreateViewport ( IDirect3DRM3 *  iface,
IDirect3DRMDevice3 *  device,
IDirect3DRMFrame3 *  camera,
DWORD  x,
DWORD  y,
DWORD  width,
DWORD  height,
IDirect3DRMViewport2 **  viewport 
)
static

Definition at line 1758 of file d3drm.c.

1760{
1761 struct d3drm *d3drm = impl_from_IDirect3DRM3(iface);
1762 struct d3drm_viewport *object;
1763 HRESULT hr;
1764
1765 TRACE("iface %p, device %p, camera %p, x %u, y %u, width %u, height %u, viewport %p.\n",
1766 iface, device, camera, x, y, width, height, viewport);
1767
1768 if (!viewport)
1769 return D3DRMERR_BADVALUE;
1770 *viewport = NULL;
1771
1772 if (!device || !camera)
1773 return D3DRMERR_BADOBJECT;
1774
1776 return hr;
1777
1778 *viewport = &object->IDirect3DRMViewport2_iface;
1779
1780 if (FAILED(hr = IDirect3DRMViewport2_Init(*viewport, device, camera, x, y, width, height)))
1781 {
1783 *viewport = NULL;
1784 return D3DRMERR_BADVALUE;
1785 }
1786
1787 return D3DRM_OK;
1788}
HRESULT d3drm_viewport_create(struct d3drm_viewport **viewport, IDirect3DRM *d3drm) DECLSPEC_HIDDEN
Definition: viewport.c:1123
#define IDirect3DRMViewport2_Init(p, a, b, c, d, e, f)
Definition: d3drmobj.h:1002
IDirect3DRMFrame * camera

◆ d3drm3_CreateWrap()

static HRESULT WINAPI d3drm3_CreateWrap ( IDirect3DRM3 *  iface,
D3DRMWRAPTYPE  type,
IDirect3DRMFrame3 *  frame,
D3DVALUE  ox,
D3DVALUE  oy,
D3DVALUE  oz,
D3DVALUE  dx,
D3DVALUE  dy,
D3DVALUE  dz,
D3DVALUE  ux,
D3DVALUE  uy,
D3DVALUE  uz,
D3DVALUE  ou,
D3DVALUE  ov,
D3DVALUE  su,
D3DVALUE  sv,
IDirect3DRMWrap **  wrap 
)
static

Definition at line 1790 of file d3drm.c.

1794{
1795 struct d3drm *d3drm = impl_from_IDirect3DRM3(iface);
1796 struct d3drm_wrap *object;
1797 HRESULT hr;
1798
1799 FIXME("iface %p, type %#x, frame %p, ox %.8e, oy %.8e, oz %.8e, dx %.8e, dy %.8e, dz %.8e, "
1800 "ux %.8e, uy %.8e, uz %.8e, ou %.8e, ov %.8e, su %.8e, sv %.8e, wrap %p, semi-stub.\n",
1801 iface, type, frame, ox, oy, oz, dx, dy, dz, ux, uy, uz, ou, ov, su, sv, wrap);
1802
1803 if (!wrap)
1804 return D3DRMERR_BADVALUE;
1805
1807 return hr;
1808
1809 *wrap = &object->IDirect3DRMWrap_iface;
1810
1811 return S_OK;
1812}

◆ d3drm3_EnumerateObjects()

static HRESULT WINAPI d3drm3_EnumerateObjects ( IDirect3DRM3 *  iface,
D3DRMOBJECTCALLBACK  cb,
void ctx 
)
static

Definition at line 1916 of file d3drm.c.

1917{
1918 FIXME("iface %p, cb %p, ctx %p stub!\n", iface, cb, ctx);
1919
1920 return E_NOTIMPL;
1921}

◆ d3drm3_GetDevices()

static HRESULT WINAPI d3drm3_GetDevices ( IDirect3DRM3 *  iface,
IDirect3DRMDeviceArray **  array 
)
static

Definition at line 1901 of file d3drm.c.

1902{
1903 FIXME("iface %p, array %p stub!\n", iface, array);
1904
1905 return E_NOTIMPL;
1906}

◆ d3drm3_GetNamedObject()

static HRESULT WINAPI d3drm3_GetNamedObject ( IDirect3DRM3 *  iface,
const char name,
IDirect3DRMObject **  object 
)
static

Definition at line 1908 of file d3drm.c.

1910{
1911 FIXME("iface %p, name %s, object %p stub!\n", iface, debugstr_a(name), object);
1912
1913 return E_NOTIMPL;
1914}

◆ d3drm3_GetOptions()

static HRESULT WINAPI d3drm3_GetOptions ( IDirect3DRM3 *  iface,
DWORD flags 
)
static

Definition at line 2270 of file d3drm.c.

2271{
2272 FIXME("iface %p, flags %p stub!\n", iface, flags);
2273
2274 return E_NOTIMPL;
2275}

◆ d3drm3_GetSearchPath()

static HRESULT WINAPI d3drm3_GetSearchPath ( IDirect3DRM3 *  iface,
DWORD size,
char path 
)
static

Definition at line 1880 of file d3drm.c.

1881{
1882 FIXME("iface %p, size %p, path %p stub!\n", iface, size, path);
1883
1884 return E_NOTIMPL;
1885}

◆ d3drm3_Load()

static HRESULT WINAPI d3drm3_Load ( IDirect3DRM3 *  iface,
void source,
void object_id,
IID **  iids,
DWORD  iid_count,
D3DRMLOADOPTIONS  flags,
D3DRMLOADCALLBACK  load_cb,
void load_ctx,
D3DRMLOADTEXTURECALLBACK  load_tex_cb,
void load_tex_ctx,
IDirect3DRMFrame3 *  parent_frame 
)
static

Definition at line 2109 of file d3drm.c.

2112{
2113 DXFILELOADOPTIONS load_options;
2114 IDirectXFile *file = NULL;
2115 IDirectXFileEnumObject *enum_object = NULL;
2116 IDirectXFileData *data = NULL;
2117 HRESULT hr;
2118 const GUID* pGuid;
2119 DWORD size;
2120 struct d3drm_file_header *header;
2122 DWORD i;
2123
2124 TRACE("iface %p, source %p, object_id %p, iids %p, iid_count %u, flags %#x, "
2125 "load_cb %p, load_ctx %p, load_tex_cb %p, load_tex_ctx %p, parent_frame %p.\n",
2126 iface, source, object_id, iids, iid_count, flags,
2127 load_cb, load_ctx, load_tex_cb, load_tex_ctx, parent_frame);
2128
2129 TRACE("Looking for GUIDs:\n");
2130 for (i = 0; i < iid_count; ++i)
2131 TRACE("- %s (%s)\n", debugstr_guid(iids[i]), get_IID_string(iids[i]));
2132
2134 {
2135 load_options = DXFILELOAD_FROMMEMORY;
2136 }
2137 else if (flags == D3DRMLOAD_FROMFILE)
2138 {
2139 load_options = DXFILELOAD_FROMFILE;
2140 TRACE("Loading from file %s\n", debugstr_a(source));
2141 }
2142 else
2143 {
2144 FIXME("Load options %#x not supported yet.\n", flags);
2145 return E_NOTIMPL;
2146 }
2147
2149 if (hr != DXFILE_OK)
2150 goto end;
2151
2153 if (hr != DXFILE_OK)
2154 goto end;
2155
2156 hr = IDirectXFile_CreateEnumObject(file, source, load_options, &enum_object);
2157 if (hr != DXFILE_OK)
2158 goto end;
2159
2161 if (hr != DXFILE_OK)
2162 goto end;
2163
2164 hr = IDirectXFileData_GetType(data, &pGuid);
2165 if (hr != DXFILE_OK)
2166 goto end;
2167
2168 TRACE("Found object type whose GUID = %s\n", debugstr_guid(pGuid));
2169
2170 if (!IsEqualGUID(pGuid, &TID_DXFILEHeader))
2171 {
2173 goto end;
2174 }
2175
2177 if ((hr != DXFILE_OK) || (size != sizeof(*header)))
2178 goto end;
2179
2180 TRACE("Version is %u.%u, flags %#x.\n", header->major, header->minor, header->flags);
2181
2182 /* Version must be 1.0.x */
2183 if ((header->major != 1) || (header->minor != 0))
2184 {
2186 goto end;
2187 }
2188
2190 data = NULL;
2191
2192 while (1)
2193 {
2196 {
2197 TRACE("No more object\n");
2198 break;
2199 }
2200 else if (hr != DXFILE_OK)
2201 {
2203 goto end;
2204 }
2205
2206 ret = load_data(iface, data, iids, iid_count, load_cb, load_ctx, load_tex_cb, load_tex_ctx, parent_frame);
2207 if (ret != D3DRM_OK)
2208 goto end;
2209
2211 data = NULL;
2212 }
2213
2214 ret = D3DRM_OK;
2215
2216end:
2217 if (data)
2219 if (enum_object)
2220 IDirectXFileEnumObject_Release(enum_object);
2221 if (file)
2223
2224 return ret;
2225}
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
#define D3DRMERR_BADFILE
Definition: d3drm.h:494
#define D3DRMLOAD_FROMFILE
Definition: d3drmdef.h:341
#define D3DRMLOAD_FROMMEMORY
Definition: d3drmdef.h:343
static const char * get_IID_string(const GUID *guid)
Definition: d3drm.c:27
static HRESULT load_data(IDirect3DRM3 *iface, IDirectXFileData *data_object, IID **GUIDs, DWORD nb_GUIDs, D3DRMLOADCALLBACK LoadProc, void *ArgLP, D3DRMLOADTEXTURECALLBACK LoadTextureProc, void *ArgLTP, IDirect3DRMFrame3 *parent_frame)
Definition: d3drm.c:1923
HRESULT WINAPI DirectXFileCreate(LPDIRECTXFILE *lplpDirectXFile)
Definition: main.c:153
#define IDirectXFile_RegisterTemplates(p, a, b)
Definition: dxfile.h:86
DWORD DXFILELOADOPTIONS
Definition: dxfile.h:35
#define IDirectXFile_Release(p)
Definition: dxfile.h:82
#define IDirectXFileEnumObject_GetNextDataObject(p, a)
Definition: dxfile.h:109
#define IDirectXFileEnumObject_Release(p)
Definition: dxfile.h:107
#define DXFILELOAD_FROMFILE
Definition: dxfile.h:37
#define IDirectXFile_CreateEnumObject(p, a, b, c)
Definition: dxfile.h:84
#define IDirectXFileData_GetType(p, a)
Definition: dxfile.h:191
#define DXFILE_OK
Definition: dxfile.h:268
#define IDirectXFileData_GetData(p, a, b, c)
Definition: dxfile.h:190
#define DXFILEERR_NOMOREOBJECTS
Definition: dxfile.h:291
#define DXFILELOAD_FROMMEMORY
Definition: dxfile.h:39
#define IDirectXFileData_Release(p)
Definition: dxfile.h:185
unsigned long DWORD
Definition: ntddk_ex.h:95
GLuint GLuint end
Definition: gl.h:1545
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
char templates[]
Definition: meshbuilder.c:39
Definition: fci.c:127
int ret

◆ d3drm3_LoadTexture()

static HRESULT WINAPI d3drm3_LoadTexture ( IDirect3DRM3 *  iface,
const char filename,
IDirect3DRMTexture3 **  texture 
)
static

Definition at line 1822 of file d3drm.c.

1824{
1825 struct d3drm *d3drm = impl_from_IDirect3DRM3(iface);
1826 struct d3drm_texture *object;
1827 HRESULT hr;
1828
1829 TRACE("iface %p, filename %s, texture %p.\n", iface, debugstr_a(filename), texture);
1830
1831 if (!texture)
1832 return D3DRMERR_BADVALUE;
1833
1835 return hr;
1836
1837 *texture = &object->IDirect3DRMTexture3_iface;
1839 {
1841 *texture = NULL;
1843 }
1844
1845 return D3DRM_OK;
1846}
#define IDirect3DRMTexture3_InitFromFile(p, a)
Definition: d3drmobj.h:3487

◆ d3drm3_LoadTextureFromResource()

static HRESULT WINAPI d3drm3_LoadTextureFromResource ( IDirect3DRM3 *  iface,
HMODULE  module,
const char resource_name,
const char resource_type,
IDirect3DRMTexture3 **  texture 
)
static

Definition at line 1848 of file d3drm.c.

1850{
1851 struct d3drm *d3drm = impl_from_IDirect3DRM3(iface);
1852 struct d3drm_texture *object;
1853 HRESULT hr;
1854
1855 FIXME("iface %p, module %p, resource_name %s, resource_type %s, texture %p stub!\n",
1856 iface, module, debugstr_a(resource_name), debugstr_a(resource_type), texture);
1857
1859 return hr;
1860
1861 *texture = &object->IDirect3DRMTexture3_iface;
1862
1863 return D3DRM_OK;
1864}

◆ d3drm3_QueryInterface()

static HRESULT WINAPI d3drm3_QueryInterface ( IDirect3DRM3 *  iface,
REFIID  riid,
void **  out 
)
static

Definition at line 1323 of file d3drm.c.

1324{
1325 struct d3drm *d3drm = impl_from_IDirect3DRM3(iface);
1326
1328}

◆ d3drm3_RegisterClient()

static HRESULT WINAPI d3drm3_RegisterClient ( IDirect3DRM3 *  iface,
REFGUID  guid,
DWORD id 
)
static

Definition at line 2241 of file d3drm.c.

2242{
2243 FIXME("iface %p, guid %s, id %p stub!\n", iface, debugstr_guid(guid), id);
2244
2245 return E_NOTIMPL;
2246}

◆ d3drm3_Release()

static ULONG WINAPI d3drm3_Release ( IDirect3DRM3 *  iface)
static

Definition at line 1343 of file d3drm.c.

1344{
1345 struct d3drm *d3drm = impl_from_IDirect3DRM3(iface);
1346 ULONG refcount = InterlockedDecrement(&d3drm->ref3);
1347
1348 TRACE("%p decreasing refcount to %u.\n", iface, refcount);
1349
1350 if (!refcount && !InterlockedDecrement(&d3drm->iface_count))
1352
1353 return refcount;
1354}

◆ d3drm3_SetDefaultTextureColors()

static HRESULT WINAPI d3drm3_SetDefaultTextureColors ( IDirect3DRM3 *  iface,
DWORD  color_count 
)
static

Definition at line 1887 of file d3drm.c.

1888{
1889 FIXME("iface %p, color_count %u stub!\n", iface, color_count);
1890
1891 return E_NOTIMPL;
1892}

◆ d3drm3_SetDefaultTextureShades()

static HRESULT WINAPI d3drm3_SetDefaultTextureShades ( IDirect3DRM3 *  iface,
DWORD  shade_count 
)
static

Definition at line 1894 of file d3drm.c.

1895{
1896 FIXME("iface %p, shade_count %u stub!\n", iface, shade_count);
1897
1898 return E_NOTIMPL;
1899}

◆ d3drm3_SetOptions()

static HRESULT WINAPI d3drm3_SetOptions ( IDirect3DRM3 *  iface,
DWORD  flags 
)
static

Definition at line 2263 of file d3drm.c.

2264{
2265 FIXME("iface %p, flags %#x stub!\n", iface, flags);
2266
2267 return E_NOTIMPL;
2268}

◆ d3drm3_SetSearchPath()

static HRESULT WINAPI d3drm3_SetSearchPath ( IDirect3DRM3 *  iface,
const char path 
)
static

Definition at line 1866 of file d3drm.c.

1867{
1868 FIXME("iface %p, path %s stub!\n", iface, debugstr_a(path));
1869
1870 return E_NOTIMPL;
1871}

◆ d3drm3_Tick()

static HRESULT WINAPI d3drm3_Tick ( IDirect3DRM3 *  iface,
D3DVALUE  tick 
)
static

Definition at line 2227 of file d3drm.c.

2228{
2229 FIXME("iface %p, tick %.8e stub!\n", iface, tick);
2230
2231 return E_NOTIMPL;
2232}

◆ d3drm3_UnregisterClient()

static HRESULT WINAPI d3drm3_UnregisterClient ( IDirect3DRM3 *  iface,
REFGUID  guid 
)
static

Definition at line 2248 of file d3drm.c.

2249{
2250 FIXME("iface %p, guid %s stub!\n", iface, debugstr_guid(guid));
2251
2252 return E_NOTIMPL;
2253}

◆ d3drm_create_animation_object()

static HRESULT d3drm_create_animation_object ( void **  object,
IDirect3DRM *  d3drm 
)
static

Definition at line 162 of file d3drm.c.

163{
164 struct d3drm_animation *animation;
165 HRESULT hr;
166
167 if (FAILED(hr = d3drm_animation_create(&animation, d3drm)))
168 return hr;
169
170 *object = &animation->IDirect3DRMAnimation_iface;
171
172 return hr;
173}
IDirect3DRMAnimation IDirect3DRMAnimation_iface

Referenced by d3drm3_CreateObject().

◆ d3drm_create_device_object()

static HRESULT d3drm_create_device_object ( void **  object,
IDirect3DRM *  d3drm 
)
static

Definition at line 58 of file d3drm.c.

59{
60 struct d3drm_device *device;
61 HRESULT hr;
62
64 return hr;
65
66 *object = &device->IDirect3DRMDevice_iface;
67
68 return hr;
69}
IDirect3DDevice * device

Referenced by d3drm3_CreateObject().

◆ d3drm_create_face_object()

static HRESULT d3drm_create_face_object ( void **  object,
IDirect3DRM *  d3drm 
)
static

Definition at line 84 of file d3drm.c.

85{
86 struct d3drm_face *face;
87 HRESULT hr;
88
90 return hr;
91
92 *object = &face->IDirect3DRMFace_iface;
93
94 return hr;
95}
WORD face[3]
Definition: mesh.c:4747

Referenced by d3drm3_CreateObject().

◆ d3drm_create_frame_object()

static HRESULT d3drm_create_frame_object ( void **  object,
IDirect3DRM *  d3drm 
)
static

Definition at line 110 of file d3drm.c.

111{
112 struct d3drm_frame *frame;
113 HRESULT hr;
114
115 if (FAILED(hr = d3drm_frame_create(&frame, NULL, d3drm)))
116 return hr;
117
118 *object = &frame->IDirect3DRMFrame_iface;
119
120 return hr;
121}
IDirect3DRMFrame IDirect3DRMFrame_iface
Definition: d3drm_private.h:72

Referenced by d3drm3_CreateObject().

◆ d3drm_create_light_object()

static HRESULT d3drm_create_light_object ( void **  object,
IDirect3DRM *  d3drm 
)
static

Definition at line 123 of file d3drm.c.

124{
125 struct d3drm_light *light;
126 HRESULT hr;
127
129 return hr;
130
131 *object = &light->IDirect3DRMLight_iface;
132
133 return hr;
134}

Referenced by d3drm3_CreateObject().

◆ d3drm_create_material_object()

static HRESULT d3drm_create_material_object ( void **  object,
IDirect3DRM *  d3drm 
)
static

Definition at line 136 of file d3drm.c.

137{
138 struct d3drm_material *material;
139 HRESULT hr;
140
141 if (FAILED(hr = d3drm_material_create(&material, d3drm)))
142 return hr;
143
144 *object = &material->IDirect3DRMMaterial2_iface;
145
146 return hr;
147}
IDirect3DRMMaterial2 IDirect3DRMMaterial2_iface

Referenced by d3drm3_CreateObject().

◆ d3drm_create_mesh_builder_object()

static HRESULT d3drm_create_mesh_builder_object ( void **  object,
IDirect3DRM *  d3drm 
)
static

Definition at line 97 of file d3drm.c.

98{
100 HRESULT hr;
101
103 return hr;
104
105 *object = &mesh_builder->IDirect3DRMMeshBuilder2_iface;
106
107 return hr;
108}

Referenced by d3drm3_CreateObject().

◆ d3drm_create_mesh_object()

static HRESULT d3drm_create_mesh_object ( void **  object,
IDirect3DRM *  d3drm 
)
static

Definition at line 149 of file d3drm.c.

150{
151 struct d3drm_mesh *mesh;
152 HRESULT hr;
153
155 return hr;
156
157 *object = &mesh->IDirect3DRMMesh_iface;
158
159 return hr;
160}

Referenced by d3drm3_CreateObject().

◆ d3drm_create_texture_object()

static HRESULT d3drm_create_texture_object ( void **  object,
IDirect3DRM *  d3drm 
)
static

Definition at line 45 of file d3drm.c.

46{
47 struct d3drm_texture *texture;
48 HRESULT hr;
49
51 return hr;
52
53 *object = &texture->IDirect3DRMTexture_iface;
54
55 return hr;
56}

Referenced by d3drm3_CreateObject().

◆ d3drm_create_viewport_object()

static HRESULT d3drm_create_viewport_object ( void **  object,
IDirect3DRM *  d3drm 
)
static

Definition at line 71 of file d3drm.c.

72{
73 struct d3drm_viewport *viewport;
74 HRESULT hr;
75
76 if (FAILED(hr = d3drm_viewport_create(&viewport, d3drm)))
77 return hr;
78
79 *object = &viewport->IDirect3DRMViewport_iface;
80
81 return hr;
82}
IDirect3DRMViewport IDirect3DRMViewport_iface

Referenced by d3drm3_CreateObject().

◆ d3drm_create_wrap_object()

static HRESULT d3drm_create_wrap_object ( void **  object,
IDirect3DRM *  d3drm 
)
static

Definition at line 175 of file d3drm.c.

176{
177 struct d3drm_wrap *wrap;
178 HRESULT hr;
179
181 return hr;
182
183 *object = &wrap->IDirect3DRMWrap_iface;
184
185 return hr;
186}

Referenced by d3drm3_CreateObject().

◆ d3drm_destroy()

static void d3drm_destroy ( struct d3drm d3drm)
static

Definition at line 211 of file d3drm.c.

212{
214 TRACE("d3drm object %p is being destroyed.\n", d3drm);
215}
static BOOL heap_free(void *mem)
Definition: appwiz.h:76

Referenced by d3drm1_Release(), d3drm2_Release(), and d3drm3_Release().

◆ Direct3DRMCreate()

HRESULT WINAPI Direct3DRMCreate ( IDirect3DRM **  d3drm)

Definition at line 2322 of file d3drm.c.

2323{
2324 struct d3drm *object;
2325
2326 TRACE("d3drm %p.\n", d3drm);
2327
2328 if (!(object = heap_alloc_zero(sizeof(*object))))
2329 return E_OUTOFMEMORY;
2330
2331 object->IDirect3DRM_iface.lpVtbl = &d3drm1_vtbl;
2332 object->IDirect3DRM2_iface.lpVtbl = &d3drm2_vtbl;
2333 object->IDirect3DRM3_iface.lpVtbl = &d3drm3_vtbl;
2334 object->ref1 = 1;
2335 object->iface_count = 1;
2336
2337 *d3drm = &object->IDirect3DRM_iface;
2338
2339 return S_OK;
2340}
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
static const struct IDirect3DRMVtbl d3drm1_vtbl
Definition: d3drm.c:762
static const struct IDirect3DRM3Vtbl d3drm3_vtbl
Definition: d3drm.c:2277
static const struct IDirect3DRM2Vtbl d3drm2_vtbl
Definition: d3drm.c:1283

Referenced by test_animation(), test_animation_qi(), test_create_device_1(), test_create_device_2(), test_create_device_3(), test_create_device_from_clipper1(), test_create_device_from_clipper2(), test_create_device_from_clipper3(), test_create_device_from_d3d1(), test_create_device_from_d3d2(), test_create_device_from_d3d3(), test_create_device_from_surface1(), test_create_device_from_surface2(), test_create_device_from_surface3(), test_create_texture_from_surface(), test_d3drm_load(), test_d3drm_qi(), test_destroy_callback(), test_Device(), test_device_qi(), test_Face(), test_Frame(), test_frame_mesh_materials(), test_frame_qi(), test_frame_transform(), test_Light(), test_load_texture(), test_Material2(), test_Mesh(), test_MeshBuilder(), test_MeshBuilder3(), test_object(), test_Texture(), test_texture_qi(), test_Viewport(), test_viewport_clear1(), test_viewport_clear2(), test_viewport_qi(), test_wrap(), and test_wrap_qi().

◆ DllCanUnloadNow()

HRESULT WINAPI DllCanUnloadNow ( void  )

Definition at line 2342 of file d3drm.c.

2343{
2344 return S_FALSE;
2345}
#define S_FALSE
Definition: winerror.h:2357

◆ DllGetClassObject()

HRESULT WINAPI DllGetClassObject ( REFCLSID  rclsid,
REFIID  riid,
void **  ppv 
)

Definition at line 2347 of file d3drm.c.

2348{
2349 TRACE("(%s, %s, %p): stub\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv);
2350
2351 if(!ppv)
2352 return E_INVALIDARG;
2353
2355}
#define E_INVALIDARG
Definition: ddrawi.h:101
REFIID LPVOID * ppv
Definition: atlbase.h:39

◆ get_IID_string()

static const char * get_IID_string ( const GUID guid)
static

Definition at line 27 of file d3drm.c.

28{
29 if (IsEqualGUID(guid, &IID_IDirect3DRMFrame))
30 return "IID_IDirect3DRMFrame";
31 else if (IsEqualGUID(guid, &IID_IDirect3DRMFrame2))
32 return "IID_IDirect3DRMFrame2";
33 else if (IsEqualGUID(guid, &IID_IDirect3DRMFrame3))
34 return "IID_IDirect3DRMFrame3";
35 else if (IsEqualGUID(guid, &IID_IDirect3DRMMeshBuilder))
36 return "IID_IDirect3DRMMeshBuilder";
37 else if (IsEqualGUID(guid, &IID_IDirect3DRMMeshBuilder2))
38 return "IID_IDirect3DRMMeshBuilder2";
39 else if (IsEqualGUID(guid, &IID_IDirect3DRMMeshBuilder3))
40 return "IID_IDirect3DRMMeshBuilder3";
41
42 return "?";
43}

Referenced by d3drm3_Load().

◆ impl_from_IDirect3DRM()

static struct d3drm * impl_from_IDirect3DRM ( IDirect3DRM *  iface)
inlinestatic

◆ impl_from_IDirect3DRM2()

◆ impl_from_IDirect3DRM3()

◆ load_data()

static HRESULT load_data ( IDirect3DRM3 *  iface,
IDirectXFileData *  data_object,
IID **  GUIDs,
DWORD  nb_GUIDs,
D3DRMLOADCALLBACK  LoadProc,
void ArgLP,
D3DRMLOADTEXTURECALLBACK  LoadTextureProc,
void ArgLTP,
IDirect3DRMFrame3 *  parent_frame 
)
static

Definition at line 1923 of file d3drm.c.

1925{
1927 HRESULT hr;
1928 const GUID* guid;
1929 DWORD i;
1930 BOOL requested = FALSE;
1931
1932 hr = IDirectXFileData_GetType(data_object, &guid);
1933 if (hr != DXFILE_OK)
1934 goto end;
1935
1936 TRACE("Found object type whose GUID = %s\n", debugstr_guid(guid));
1937
1938 /* Load object only if it is top level and requested or if it is part of another object */
1939
1940 if (IsEqualGUID(guid, &TID_D3DRMMesh))
1941 {
1942 TRACE("Found TID_D3DRMMesh\n");
1943
1944 for (i = 0; i < nb_GUIDs; i++)
1945 if (IsEqualGUID(GUIDs[i], &IID_IDirect3DRMMeshBuilder) ||
1946 IsEqualGUID(GUIDs[i], &IID_IDirect3DRMMeshBuilder2) ||
1947 IsEqualGUID(GUIDs[i], &IID_IDirect3DRMMeshBuilder3))
1948 {
1949 requested = TRUE;
1950 break;
1951 }
1952
1953 if (requested || parent_frame)
1954 {
1955 IDirect3DRMMeshBuilder3 *meshbuilder;
1956
1957 TRACE("Load mesh data\n");
1958
1959 hr = IDirect3DRM3_CreateMeshBuilder(iface, &meshbuilder);
1960 if (SUCCEEDED(hr))
1961 {
1962 hr = load_mesh_data(meshbuilder, data_object, LoadTextureProc, ArgLTP);
1963 if (SUCCEEDED(hr))
1964 {
1965 /* Only top level objects are notified */
1966 if (!parent_frame)
1967 {
1968 IDirect3DRMObject *object;
1969
1970 hr = IDirect3DRMMeshBuilder3_QueryInterface(meshbuilder, GUIDs[i], (void**)&object);
1971 if (SUCCEEDED(hr))
1972 {
1973 LoadProc(object, GUIDs[i], ArgLP);
1975 }
1976 }
1977 else
1978 {
1979 IDirect3DRMFrame3_AddVisual(parent_frame, (IUnknown*)meshbuilder);
1980 }
1981 }
1983 }
1984
1985 if (FAILED(hr))
1986 ERR("Cannot process mesh\n");
1987 }
1988 }
1989 else if (IsEqualGUID(guid, &TID_D3DRMFrame))
1990 {
1991 TRACE("Found TID_D3DRMFrame\n");
1992
1993 for (i = 0; i < nb_GUIDs; i++)
1994 if (IsEqualGUID(GUIDs[i], &IID_IDirect3DRMFrame) ||
1995 IsEqualGUID(GUIDs[i], &IID_IDirect3DRMFrame2) ||
1996 IsEqualGUID(GUIDs[i], &IID_IDirect3DRMFrame3))
1997 {
1998 requested = TRUE;
1999 break;
2000 }
2001
2002 if (requested || parent_frame)
2003 {
2004 IDirect3DRMFrame3 *frame;
2005
2006 TRACE("Load frame data\n");
2007
2008 hr = IDirect3DRM3_CreateFrame(iface, parent_frame, &frame);
2009 if (SUCCEEDED(hr))
2010 {
2011 IDirectXFileObject *child;
2012
2013 while (SUCCEEDED(hr = IDirectXFileData_GetNextObject(data_object, &child)))
2014 {
2015 IDirectXFileData *data;
2016 IDirectXFileDataReference *reference;
2017 IDirectXFileBinary *binary;
2018
2020 &IID_IDirectXFileBinary, (void **)&binary)))
2021 {
2022 FIXME("Binary Object not supported yet\n");
2024 }
2026 &IID_IDirectXFileData, (void **)&data)))
2027 {
2028 TRACE("Found Data Object\n");
2029 hr = load_data(iface, data, GUIDs, nb_GUIDs, LoadProc, ArgLP, LoadTextureProc, ArgLTP, frame);
2031 }
2033 &IID_IDirectXFileDataReference, (void **)&reference)))
2034 {
2035 TRACE("Found Data Object Reference\n");
2037 hr = load_data(iface, data, GUIDs, nb_GUIDs, LoadProc, ArgLP, LoadTextureProc, ArgLTP, frame);
2040 }
2042 }
2043
2045 {
2047 goto end;
2048 }
2049 hr = S_OK;
2050
2051 /* Only top level objects are notified */
2052 if (!parent_frame)
2053 {
2054 IDirect3DRMObject *object;
2055
2056 hr = IDirect3DRMFrame3_QueryInterface(frame, GUIDs[i], (void**)&object);
2057 if (SUCCEEDED(hr))
2058 {
2059 LoadProc(object, GUIDs[i], ArgLP);
2061 }
2062 }
2064 }
2065
2066 if (FAILED(hr))
2067 ERR("Cannot process frame\n");
2068 }
2069 }
2070 else if (IsEqualGUID(guid, &TID_D3DRMMaterial))
2071 {
2072 TRACE("Found TID_D3DRMMaterial\n");
2073
2074 /* Cannot be requested so nothing to do */
2075 }
2076 else if (IsEqualGUID(guid, &TID_D3DRMFrameTransformMatrix))
2077 {
2078 TRACE("Found TID_D3DRMFrameTransformMatrix\n");
2079
2080 /* Cannot be requested */
2081 if (parent_frame)
2082 {
2084 DWORD size;
2085
2086 TRACE("Load Frame Transform Matrix data\n");
2087
2088 hr = IDirectXFileData_GetData(data_object, NULL, &size, (void**)&matrix);
2089 if ((hr != DXFILE_OK) || (size != sizeof(matrix)))
2090 goto end;
2091
2093 if (FAILED(hr))
2094 goto end;
2095 }
2096 }
2097 else
2098 {
2099 FIXME("Found unknown TID %s\n", debugstr_guid(guid));
2100 }
2101
2102 ret = D3DRM_OK;
2103
2104end:
2105
2106 return ret;
2107}
#define ERR(fmt,...)
Definition: debug.h:110
#define IDirect3DRM3_CreateFrame(p, a, b)
Definition: d3drm.h:403
#define IDirect3DRM3_CreateMeshBuilder(p, a)
Definition: d3drm.h:405
HRESULT load_mesh_data(IDirect3DRMMeshBuilder3 *iface, IDirectXFileData *data, D3DRMLOADTEXTURECALLBACK load_texture_proc, void *arg) DECLSPEC_HIDDEN
Definition: meshbuilder.c:1019
@ D3DRMCOMBINE_REPLACE
Definition: d3drmdef.h:125
D3DVALUE D3DRMMATRIX4D[4][4]
Definition: d3drmdef.h:39
#define IDirect3DRMFrame3_QueryInterface(p, a, b)
Definition: d3drmobj.h:1706
#define IDirect3DRMMeshBuilder3_Release(p)
Definition: d3drmobj.h:2926
#define IDirect3DRMFrame3_AddTransform(p, a, b)
Definition: d3drmobj.h:1722
#define IDirect3DRMMeshBuilder3_QueryInterface(p, a, b)
Definition: d3drmobj.h:2924
#define IDirect3DRMFrame3_AddVisual(p, a)
Definition: d3drmobj.h:1726
#define IDirect3DRMObject_Release(p)
Definition: d3drmobj.h:220
#define FALSE
Definition: types.h:117
#define IDirectXFileObject_Release(p)
Definition: dxfile.h:160
#define IDirectXFileDataReference_Release(p)
Definition: dxfile.h:212
#define IDirectXFileObject_QueryInterface(p, a, b)
Definition: dxfile.h:158
#define IDirectXFileDataReference_Resolve(p, a)
Definition: dxfile.h:217
#define IDirectXFileData_GetNextObject(p, a)
Definition: dxfile.h:192
#define IDirectXFileBinary_Release(p)
Definition: dxfile.h:236
GLuint GLenum matrix
Definition: glext.h:9407
GLint reference
Definition: glext.h:11729
const GLuint GLenum const GLvoid * binary
Definition: glext.h:7538
static HWND child
Definition: cursoricon.c:298
static VOID * LoadProc(LPCWSTR DllName, LPCSTR ProcName, HMODULE *DllHandle)
Definition: msiexec.c:266

Referenced by d3drm3_Load(), and load_data().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( d3drm  )

Variable Documentation

◆ d3drm1_vtbl

const struct IDirect3DRMVtbl d3drm1_vtbl
static

Definition at line 762 of file d3drm.c.

Referenced by Direct3DRMCreate().

◆ d3drm2_vtbl

const struct IDirect3DRM2Vtbl d3drm2_vtbl
static

Definition at line 1283 of file d3drm.c.

Referenced by Direct3DRMCreate().

◆ d3drm3_vtbl

const struct IDirect3DRM3Vtbl d3drm3_vtbl
static

Definition at line 2277 of file d3drm.c.

Referenced by Direct3DRMCreate().