main.c

来自「Wine-20031016」· C语言 代码 · 共 1,643 行 · 第 1/5 页

C
1,643
字号
    IDirect3D7_AddRef(ICOM_INTERFACE(This->d3d, IDirect3D7));        TRACE(" returning interface %p\n", *lplpDirect3D7);    return DD_OK;}HRESULT WINAPIMain_IDirect3DDeviceImpl_7_3T_2T_SetRenderTarget(LPDIRECT3DDEVICE7 iface,						 LPDIRECTDRAWSURFACE7 lpNewRenderTarget,						 DWORD dwFlags){    ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);    IDirectDrawSurfaceImpl *target_impl = ICOM_OBJECT(IDirectDrawSurfaceImpl, IDirectDrawSurface7, lpNewRenderTarget);    TRACE("(%p/%p)->(%p,%08lx)\n", This, iface, lpNewRenderTarget, dwFlags);    if (target_impl != This->surface) {        WARN(" Change of rendering target not handled yet !\n");    }    return DD_OK;}HRESULT WINAPIMain_IDirect3DDeviceImpl_7_3T_2T_GetRenderTarget(LPDIRECT3DDEVICE7 iface,						 LPDIRECTDRAWSURFACE7* lplpRenderTarget){    ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);    TRACE("(%p/%p)->(%p)\n", This, iface, lplpRenderTarget);    *lplpRenderTarget = ICOM_INTERFACE(This->surface, IDirectDrawSurface7);    IDirectDrawSurface7_AddRef(ICOM_INTERFACE(This->surface, IDirectDrawSurface7));        TRACE(" returning surface at %p.\n", *lplpRenderTarget);        return DD_OK;}HRESULT WINAPIMain_IDirect3DDeviceImpl_7_Clear(LPDIRECT3DDEVICE7 iface,                                 DWORD dwCount,                                 LPD3DRECT lpRects,                                 DWORD dwFlags,                                 D3DCOLOR dwColor,                                 D3DVALUE dvZ,                                 DWORD dwStencil){    ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);    TRACE("(%p/%p)->(%08lx,%p,%08lx,%08lx,%f,%08lx)\n", This, iface, dwCount, lpRects, dwFlags, (DWORD) dwColor, dvZ, dwStencil);    return This->clear(This, dwCount, lpRects, dwFlags, dwColor, dvZ, dwStencil);}HRESULT WINAPIMain_IDirect3DDeviceImpl_7_3T_2T_SetTransform(LPDIRECT3DDEVICE7 iface,                                              D3DTRANSFORMSTATETYPE dtstTransformStateType,                                              LPD3DMATRIX lpD3DMatrix){    ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);    DWORD matrix_changed = 0x00000000;    TRACE("(%p/%p)->(%08x,%p)\n", This, iface, dtstTransformStateType, lpD3DMatrix);    switch (dtstTransformStateType) {        case D3DTRANSFORMSTATE_WORLD: {	    if (TRACE_ON(ddraw)) {	        TRACE(" D3DTRANSFORMSTATE_WORLD :\n"); dump_D3DMATRIX(lpD3DMatrix);	    }	    memcpy(This->world_mat, lpD3DMatrix, 16 * sizeof(float));	    matrix_changed = WORLDMAT_CHANGED;	} break;	case D3DTRANSFORMSTATE_VIEW: {	    if (TRACE_ON(ddraw)) {	        TRACE(" D3DTRANSFORMSTATE_VIEW :\n");  dump_D3DMATRIX(lpD3DMatrix);	    }	    memcpy(This->view_mat, lpD3DMatrix, 16 * sizeof(float));	    matrix_changed = VIEWMAT_CHANGED;	} break;	case D3DTRANSFORMSTATE_PROJECTION: {	    if (TRACE_ON(ddraw)) {	        TRACE(" D3DTRANSFORMSTATE_PROJECTION :\n");  dump_D3DMATRIX(lpD3DMatrix);	    }	    memcpy(This->proj_mat, lpD3DMatrix, 16 * sizeof(float));	    matrix_changed = PROJMAT_CHANGED;	} break;	case D3DTRANSFORMSTATE_TEXTURE0:	case D3DTRANSFORMSTATE_TEXTURE1:	case D3DTRANSFORMSTATE_TEXTURE2:	case D3DTRANSFORMSTATE_TEXTURE3:	case D3DTRANSFORMSTATE_TEXTURE4:	case D3DTRANSFORMSTATE_TEXTURE5:	case D3DTRANSFORMSTATE_TEXTURE6:	case D3DTRANSFORMSTATE_TEXTURE7: {	    DWORD mat_num = dtstTransformStateType - D3DTRANSFORMSTATE_TEXTURE0;	    if (TRACE_ON(ddraw)) {	        TRACE(" D3DTRANSFORMSTATE_TEXTURE%ld :\n", mat_num);  dump_D3DMATRIX(lpD3DMatrix);	    }	    memcpy(This->tex_mat[mat_num], lpD3DMatrix, 16 * sizeof(float));	    matrix_changed = TEXMAT0_CHANGED << mat_num;	} break;	  	default:	    ERR("Unknown transform type %08x !!!\n", dtstTransformStateType);	    break;    }    if (matrix_changed != 0x00000000) This->matrices_updated(This, matrix_changed);    return DD_OK;}HRESULT WINAPIMain_IDirect3DDeviceImpl_7_3T_2T_GetTransform(LPDIRECT3DDEVICE7 iface,                                              D3DTRANSFORMSTATETYPE dtstTransformStateType,                                              LPD3DMATRIX lpD3DMatrix){    ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);    TRACE("(%p/%p)->(%08x,%p)\n", This, iface, dtstTransformStateType, lpD3DMatrix);    switch (dtstTransformStateType) {        case D3DTRANSFORMSTATE_WORLD: {	    memcpy(lpD3DMatrix, This->world_mat, 16 * sizeof(D3DVALUE));	    if (TRACE_ON(ddraw)) {	        TRACE(" returning D3DTRANSFORMSTATE_WORLD :\n");		dump_D3DMATRIX(lpD3DMatrix);	    }	} break;	case D3DTRANSFORMSTATE_VIEW: {	    memcpy(lpD3DMatrix, This->view_mat, 16 * sizeof(D3DVALUE));	    if (TRACE_ON(ddraw)) {	        TRACE(" returning D3DTRANSFORMSTATE_VIEW :\n");		dump_D3DMATRIX(lpD3DMatrix);	    }	} break;	case D3DTRANSFORMSTATE_PROJECTION: {	    memcpy(lpD3DMatrix, This->proj_mat, 16 * sizeof(D3DVALUE));	    if (TRACE_ON(ddraw)) {	        TRACE(" returning D3DTRANSFORMSTATE_PROJECTION :\n");		dump_D3DMATRIX(lpD3DMatrix);	    }	} break;	case D3DTRANSFORMSTATE_TEXTURE0:	case D3DTRANSFORMSTATE_TEXTURE1:	case D3DTRANSFORMSTATE_TEXTURE2:	case D3DTRANSFORMSTATE_TEXTURE3:	case D3DTRANSFORMSTATE_TEXTURE4:	case D3DTRANSFORMSTATE_TEXTURE5:	case D3DTRANSFORMSTATE_TEXTURE6:	case D3DTRANSFORMSTATE_TEXTURE7: {	    DWORD mat_num = dtstTransformStateType - D3DTRANSFORMSTATE_TEXTURE0;	    memcpy(lpD3DMatrix, This->tex_mat[mat_num], 16 * sizeof(D3DVALUE));	    if (TRACE_ON(ddraw)) {	        TRACE(" returning D3DTRANSFORMSTATE_TEXTURE%ld :\n", mat_num);		dump_D3DMATRIX(lpD3DMatrix);	    }	} break;	  	default:	    ERR("Unknown transform type %08x !!!\n", dtstTransformStateType);	    return DDERR_INVALIDPARAMS;    }    return DD_OK;}HRESULT WINAPIMain_IDirect3DDeviceImpl_7_3T_2T_MultiplyTransform(LPDIRECT3DDEVICE7 iface,                                                   D3DTRANSFORMSTATETYPE dtstTransformStateType,                                                   LPD3DMATRIX lpD3DMatrix){    ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);    LPD3DMATRIX mat;    DWORD matrix_changed = 0x00000000;    TRACE("(%p/%p)->(%08x,%p)\n", This, iface, dtstTransformStateType, lpD3DMatrix);        if (TRACE_ON(ddraw)) {        TRACE(" Multiplying by :\n"); dump_D3DMATRIX(lpD3DMatrix);    }        switch (dtstTransformStateType) {        case D3DTRANSFORMSTATE_WORLD: {	    if (TRACE_ON(ddraw)) {	        TRACE(" Resulting D3DTRANSFORMSTATE_WORLD matrix is :\n");	    }	    mat = This->world_mat;	    matrix_changed = WORLDMAT_CHANGED;	} break;        case D3DTRANSFORMSTATE_VIEW: {	    if (TRACE_ON(ddraw)) {	        TRACE(" Resulting D3DTRANSFORMSTATE_VIEW matrix is :\n");	    }	    mat = This->view_mat;	    matrix_changed = VIEWMAT_CHANGED;	} break;        case D3DTRANSFORMSTATE_PROJECTION: {	    if (TRACE_ON(ddraw)) {	        TRACE(" Resulting D3DTRANSFORMSTATE_PROJECTION matrix is :\n");	    }	    mat = This->proj_mat;	    matrix_changed = PROJMAT_CHANGED;	} break;	case D3DTRANSFORMSTATE_TEXTURE0:	case D3DTRANSFORMSTATE_TEXTURE1:	case D3DTRANSFORMSTATE_TEXTURE2:	case D3DTRANSFORMSTATE_TEXTURE3:	case D3DTRANSFORMSTATE_TEXTURE4:	case D3DTRANSFORMSTATE_TEXTURE5:	case D3DTRANSFORMSTATE_TEXTURE6:	case D3DTRANSFORMSTATE_TEXTURE7: {	    DWORD mat_num = dtstTransformStateType - D3DTRANSFORMSTATE_TEXTURE0;	    if (TRACE_ON(ddraw)) {	        TRACE(" Resulting D3DTRANSFORMSTATE_TEXTURE%ld matrix is :\n", mat_num);	    }	    mat = This->tex_mat[mat_num];	    matrix_changed = TEXMAT0_CHANGED << mat_num;	} break;	default:	    ERR("Unknown transform type %08x !!!\n", dtstTransformStateType);	    return DDERR_INVALIDPARAMS;    }    multiply_matrix(mat,mat,lpD3DMatrix);        if (TRACE_ON(ddraw)) {        dump_D3DMATRIX(mat);    }        if (matrix_changed != 0x00000000) This->matrices_updated(This, matrix_changed);        return DD_OK;}HRESULT WINAPIMain_IDirect3DDeviceImpl_7_GetViewport(LPDIRECT3DDEVICE7 iface,                                       LPD3DVIEWPORT7 lpData){    ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);    TRACE("(%p/%p)->(%p)\n", This, iface, lpData);    *lpData = This->active_viewport;    if (TRACE_ON(ddraw)) {        TRACE(" returning viewport : \n");	TRACE("    - dwX = %ld   dwY = %ld\n",	      lpData->dwX, lpData->dwY);	TRACE("    - dwWidth = %ld   dwHeight = %ld\n",	      lpData->dwWidth, lpData->dwHeight);	TRACE("    - dvMinZ = %f   dvMaxZ = %f\n",	      lpData->dvMinZ, lpData->dvMaxZ);    }    return DD_OK;}HRESULT WINAPIMain_IDirect3DDeviceImpl_7_SetMaterial(LPDIRECT3DDEVICE7 iface,                                       LPD3DMATERIAL7 lpMat){    ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);    FIXME("(%p/%p)->(%p): stub!\n", This, iface, lpMat);    return DD_OK;}HRESULT WINAPIMain_IDirect3DDeviceImpl_7_GetMaterial(LPDIRECT3DDEVICE7 iface,                                       LPD3DMATERIAL7 lpMat){    ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);    TRACE("(%p/%p)->(%p)\n", This, iface, lpMat);        *lpMat = This->current_material;    if (TRACE_ON(ddraw)) {        TRACE(" returning material : \n");	dump_D3DMATERIAL7(lpMat);    }    return DD_OK;}HRESULT WINAPIMain_IDirect3DDeviceImpl_7_SetLight(LPDIRECT3DDEVICE7 iface,                                    DWORD dwLightIndex,                                    LPD3DLIGHT7 lpLight){    ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);    FIXME("(%p/%p)->(%08lx,%p): stub!\n", This, iface, dwLightIndex, lpLight);    return DD_OK;}HRESULT WINAPIMain_IDirect3DDeviceImpl_7_GetLight(LPDIRECT3DDEVICE7 iface,                                    DWORD dwLightIndex,                                    LPD3DLIGHT7 lpLight){    ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);    TRACE("(%p/%p)->(%08lx,%p)\n", This, iface, dwLightIndex, lpLight);    if (dwLightIndex > MAX_LIGHTS) return DDERR_INVALIDPARAMS;    *lpLight = This->light_parameters[dwLightIndex];    if (TRACE_ON(ddraw)) {        TRACE(" returning light : \n");	dump_D3DLIGHT7(lpLight);    }    return DD_OK;}HRESULT WINAPIMain_IDirect3DDeviceImpl_7_3T_2T_SetRenderState(LPDIRECT3DDEVICE7 iface,                                                D3DRENDERSTATETYPE dwRenderStateType,                                                DWORD dwRenderState){    ICOM_THIS_FROM(IDirect3DDeviceImpl, IDirect3DDevice7, iface);    FIXME("(%p/%p)->(%08x,%08lx): stub!\n", This, iface, dwRenderStateType, dwRenderState);    return DD_OK;}HRESULT WINAPIMain_IDirect3DDeviceImpl_7_3T_2T_GetRenderState(LPDIRECT3DDEVICE7 iface,

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?