main.c
来自「Wine-20031016」· C语言 代码 · 共 1,643 行 · 第 1/5 页
C
1,643 行
TRACE("(%p/%p)->(%08lx,%p,%08lx)\n", This, iface, dwDevInfoID, pDevInfoStruct, dwSize); if (TRACE_ON(ddraw)) { TRACE(" info requested : "); switch (dwDevInfoID) { case D3DDEVINFOID_TEXTUREMANAGER: TRACE("D3DDEVINFOID_TEXTUREMANAGER\n"); break; case D3DDEVINFOID_D3DTEXTUREMANAGER: TRACE("D3DDEVINFOID_D3DTEXTUREMANAGER\n"); break; case D3DDEVINFOID_TEXTURING: TRACE("D3DDEVINFOID_TEXTURING\n"); break; default: ERR(" invalid flag !!!\n"); return DDERR_INVALIDPARAMS; } } return S_FALSE; /* According to MSDN, this is valid for a non-debug driver */}HRESULT WINAPIMain_IDirect3DDeviceImpl_3_2T_1T_GetCaps(LPDIRECT3DDEVICE3 iface, LPD3DDEVICEDESC lpD3DHWDevDesc, LPD3DDEVICEDESC lpD3DHELDevDesc){ ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface); FIXME("(%p/%p)->(%p,%p): stub!\n", This, iface, lpD3DHWDevDesc, lpD3DHELDevDesc); return DD_OK;}HRESULT WINAPIMain_IDirect3DDeviceImpl_3_2T_1T_GetStats(LPDIRECT3DDEVICE3 iface, LPD3DSTATS lpD3DStats){ ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface); FIXME("(%p/%p)->(%p): stub!\n", This, iface, lpD3DStats); return DD_OK;}HRESULT WINAPIMain_IDirect3DDeviceImpl_3_2T_1T_AddViewport(LPDIRECT3DDEVICE3 iface, LPDIRECT3DVIEWPORT3 lpDirect3DViewport3){ ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface); IDirect3DViewportImpl *lpDirect3DViewportImpl = ICOM_OBJECT(IDirect3DViewportImpl, IDirect3DViewport3, lpDirect3DViewport3); TRACE("(%p/%p)->(%p)\n", This, iface, lpDirect3DViewport3); lpDirect3DViewportImpl->next = This->viewport_list; This->viewport_list = lpDirect3DViewportImpl; return DD_OK;}HRESULT WINAPIMain_IDirect3DDeviceImpl_3_2T_1T_DeleteViewport(LPDIRECT3DDEVICE3 iface, LPDIRECT3DVIEWPORT3 lpDirect3DViewport3){ ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface); IDirect3DViewportImpl *lpDirect3DViewportImpl = ICOM_OBJECT(IDirect3DViewportImpl, IDirect3DViewport3, lpDirect3DViewport3); IDirect3DViewportImpl *cur_viewport, *prev_viewport = NULL; TRACE("(%p/%p)->(%p)\n", This, iface, lpDirect3DViewport3); cur_viewport = This->viewport_list; while (cur_viewport != NULL) { if (cur_viewport == lpDirect3DViewportImpl) { if (prev_viewport == NULL) This->viewport_list = cur_viewport->next; else prev_viewport->next = cur_viewport->next; /* TODO : add desactivate of the viewport and all associated lights... */ return DD_OK; } prev_viewport = cur_viewport; cur_viewport = cur_viewport->next; } return DDERR_INVALIDPARAMS;}HRESULT WINAPIMain_IDirect3DDeviceImpl_3_2T_1T_NextViewport(LPDIRECT3DDEVICE3 iface, LPDIRECT3DVIEWPORT3 lpDirect3DViewport3, LPDIRECT3DVIEWPORT3* lplpDirect3DViewport3, DWORD dwFlags){ ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface); IDirect3DViewportImpl *res = NULL; TRACE("(%p/%p)->(%p,%p,%08lx)\n", This, iface, lpDirect3DViewport3, lplpDirect3DViewport3, dwFlags); switch (dwFlags) { case D3DNEXT_NEXT: { IDirect3DViewportImpl *lpDirect3DViewportImpl = ICOM_OBJECT(IDirect3DViewportImpl, IDirect3DViewport3, lpDirect3DViewport3); res = lpDirect3DViewportImpl->next; } break; case D3DNEXT_HEAD: { res = This->viewport_list; } break; case D3DNEXT_TAIL: { IDirect3DViewportImpl *cur_viewport = This->viewport_list; if (cur_viewport != NULL) { while (cur_viewport->next != NULL) cur_viewport = cur_viewport->next; } res = cur_viewport; } break; default: *lplpDirect3DViewport3 = NULL; return DDERR_INVALIDPARAMS; } *lplpDirect3DViewport3 = ICOM_INTERFACE(res, IDirect3DViewport3); return DD_OK;}HRESULT WINAPIMain_IDirect3DDeviceImpl_3_2T_SetCurrentViewport(LPDIRECT3DDEVICE3 iface, LPDIRECT3DVIEWPORT3 lpDirect3DViewport3){ ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface); TRACE("(%p/%p)->(%p)\n", This, iface, lpDirect3DViewport3); /* Do nothing if the specified viewport is the same as the current one */ if (This->current_viewport == ICOM_OBJECT(IDirect3DViewportImpl, IDirect3DViewport3, lpDirect3DViewport3)) return DD_OK; /* Should check if the viewport was added or not */ /* Release previous viewport and AddRef the new one */ if (This->current_viewport) IDirect3DViewport3_Release(ICOM_INTERFACE(This->current_viewport, IDirect3DViewport3)); IDirect3DViewport3_AddRef(lpDirect3DViewport3); /* Set this viewport as the current viewport */ This->current_viewport = ICOM_OBJECT(IDirect3DViewportImpl, IDirect3DViewport3, lpDirect3DViewport3); /* Activate this viewport */ This->current_viewport->active_device = This; This->current_viewport->activate(This->current_viewport); return DD_OK;}HRESULT WINAPIMain_IDirect3DDeviceImpl_3_2T_GetCurrentViewport(LPDIRECT3DDEVICE3 iface, LPDIRECT3DVIEWPORT3* lplpDirect3DViewport3){ ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface); TRACE("(%p/%p)->(%p)\n", This, iface, lplpDirect3DViewport3); *lplpDirect3DViewport3 = ICOM_INTERFACE(This->current_viewport, IDirect3DViewport3); /* AddRef the returned viewport */ IDirect3DViewport3_AddRef(*lplpDirect3DViewport3); TRACE(" returning interface %p\n", *lplpDirect3DViewport3); return DD_OK;}HRESULT WINAPIMain_IDirect3DDeviceImpl_3_Begin(LPDIRECT3DDEVICE3 iface, D3DPRIMITIVETYPE d3dptPrimitiveType, DWORD dwVertexTypeDesc, DWORD dwFlags){ ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface); FIXME("(%p/%p)->(%08x,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, dwVertexTypeDesc, dwFlags); return DD_OK;}HRESULT WINAPIMain_IDirect3DDeviceImpl_3_BeginIndexed(LPDIRECT3DDEVICE3 iface, D3DPRIMITIVETYPE d3dptPrimitiveType, DWORD d3dvtVertexType, LPVOID lpvVertices, DWORD dwNumVertices, DWORD dwFlags){ ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface); FIXME("(%p/%p)->(%08x,%08lx,%p,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, d3dvtVertexType, lpvVertices, dwNumVertices, dwFlags); return DD_OK;}HRESULT WINAPIMain_IDirect3DDeviceImpl_3_2T_Vertex(LPDIRECT3DDEVICE3 iface, LPVOID lpVertexType){ ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface); FIXME("(%p/%p)->(%p): stub!\n", This, iface, lpVertexType); return DD_OK;}HRESULT WINAPIMain_IDirect3DDeviceImpl_3_2T_Index(LPDIRECT3DDEVICE3 iface, WORD wVertexIndex){ ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface); FIXME("(%p/%p)->(%04x): stub!\n", This, iface, wVertexIndex); return DD_OK;}HRESULT WINAPIMain_IDirect3DDeviceImpl_3_2T_End(LPDIRECT3DDEVICE3 iface, DWORD dwFlags){ ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface); FIXME("(%p/%p)->(%08lx): stub!\n", This, iface, dwFlags); return DD_OK;}HRESULT WINAPIMain_IDirect3DDeviceImpl_3_2T_GetLightState(LPDIRECT3DDEVICE3 iface, D3DLIGHTSTATETYPE dwLightStateType, LPDWORD lpdwLightState){ ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface); FIXME("(%p/%p)->(%08x,%p): stub !\n", This, iface, dwLightStateType, lpdwLightState); return DD_OK;}HRESULT WINAPIMain_IDirect3DDeviceImpl_3_2T_SetLightState(LPDIRECT3DDEVICE3 iface, D3DLIGHTSTATETYPE dwLightStateType, DWORD dwLightState){ ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice3, iface); FIXME("(%p/%p)->(%08x,%08lx): stub!\n", This, iface, dwLightStateType, dwLightState); return DD_OK;}HRESULT WINAPIMain_IDirect3DDeviceImpl_2_1T_SwapTextureHandles(LPDIRECT3DDEVICE2 iface, LPDIRECT3DTEXTURE2 lpD3DTex1, LPDIRECT3DTEXTURE2 lpD3DTex2){ ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice2, iface); IDirectDrawSurfaceImpl tmp,*surf1,*surf2; TRACE("(%p/%p)->(%p,%p):\n", This, iface, lpD3DTex1, lpD3DTex2); surf1 = ICOM_OBJECT(IDirectDrawSurfaceImpl,IDirect3DTexture2,lpD3DTex1); surf2 = ICOM_OBJECT(IDirectDrawSurfaceImpl,IDirect3DTexture2,lpD3DTex2); tmp = *surf1; *surf1 = *surf2; *surf2 = tmp; return DD_OK;}HRESULT WINAPIMain_IDirect3DDeviceImpl_2_NextViewport(LPDIRECT3DDEVICE2 iface, LPDIRECT3DVIEWPORT2 lpDirect3DViewport2, LPDIRECT3DVIEWPORT2* lplpDirect3DViewport2, DWORD dwFlags){ ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice2, iface); FIXME("(%p/%p)->(%p,%p,%08lx): stub!\n", This, iface, lpDirect3DViewport2, lplpDirect3DViewport2, dwFlags); return DD_OK;}HRESULT WINAPIMain_IDirect3DDeviceImpl_2_1T_EnumTextureFormats(LPDIRECT3DDEVICE2 iface, LPD3DENUMTEXTUREFORMATSCALLBACK lpD3DEnumTextureProc, LPVOID lpArg){ ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice2, iface); FIXME("(%p/%p)->(%p,%p): stub!\n", This, iface, lpD3DEnumTextureProc, lpArg); return DD_OK;}HRESULT WINAPIMain_IDirect3DDeviceImpl_2_Begin(LPDIRECT3DDEVICE2 iface, D3DPRIMITIVETYPE d3dpt, D3DVERTEXTYPE dwVertexTypeDesc, DWORD dwFlags){ ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice2, iface); FIXME("(%p/%p)->(%08x,%08x,%08lx): stub!\n", This, iface, d3dpt, dwVertexTypeDesc, dwFlags); return DD_OK;}HRESULT WINAPIMain_IDirect3DDeviceImpl_2_BeginIndexed(LPDIRECT3DDEVICE2 iface, D3DPRIMITIVETYPE d3dptPrimitiveType, D3DVERTEXTYPE d3dvtVertexType, LPVOID lpvVertices, DWORD dwNumVertices, DWORD dwFlags){ ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice2, iface); FIXME("(%p/%p)->(%08x,%08x,%p,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, d3dvtVertexType, lpvVertices, dwNumVertices, dwFlags); return DD_OK;}HRESULT WINAPIMain_IDirect3DDeviceImpl_2_DrawPrimitive(LPDIRECT3DDEVICE2 iface, D3DPRIMITIVETYPE d3dptPrimitiveType, D3DVERTEXTYPE d3dvtVertexType, LPVOID lpvVertices, DWORD dwVertexCount, DWORD dwFlags){ ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice2, iface); FIXME("(%p/%p)->(%08x,%08x,%p,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, d3dvtVertexType, lpvVertices, dwVertexCount, dwFlags); return DD_OK;}HRESULT WINAPIMain_IDirect3DDeviceImpl_2_DrawIndexedPrimitive(LPDIRECT3DDEVICE2 iface, D3DPRIMITIVETYPE d3dptPrimitiveType, D3DVERTEXTYPE d3dvtVertexType, LPVOID lpvVertices, DWORD dwVertexCount, LPWORD dwIndices, DWORD dwIndexCount, DWORD dwFlags){ ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice2, iface); FIXME("(%p/%p)->(%08x,%08x,%p,%08lx,%p,%08lx,%08lx): stub!\n", This, iface, d3dptPrimitiveType, d3dvtVertexType, lpvVertices, dwVertexCount, dwIndices, dwIndexCount, dwFlags); return DD_OK;}HRESULT WINAPIMain_IDirect3DDeviceImpl_1_Initialize(LPDIRECT3DDEVICE iface, LPDIRECT3D lpDirect3D, LPGUID lpGUID, LPD3DDEVICEDESC lpD3DDVDesc){ ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice, iface); FIXME("(%p/%p)->(%p,%p,%p): stub!\n", This, iface, lpDirect3D, lpGUID, lpD3DDVDesc); return DD_OK;}HRESULT WINAPIMain_IDirect3DDeviceImpl_1_CreateExecuteBuffer(LPDIRECT3DDEVICE iface, LPD3DEXECUTEBUFFERDESC lpDesc,
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?