| Index: ddraw/glDirect3D.h |
| — | — | @@ -20,6 +20,7 @@ |
| 21 | 21 | #define __GLDIRECT3D_H
|
| 22 | 22 |
|
| 23 | 23 | extern D3DDEVICEDESC7 d3ddesc;
|
| | 24 | +extern D3DDEVICEDESC d3ddesc3;
|
| 24 | 25 | class glDirectDraw7;
|
| 25 | 26 |
|
| 26 | 27 | class glDirect3D7 : public IDirect3D7
|
| Index: ddraw/glDirect3DDevice.cpp |
| — | — | @@ -1464,21 +1464,111 @@ |
| 1465 | 1465 | if(!this) return DDERR_INVALIDOBJECT;
|
| 1466 | 1466 | return glD3DDev7->End(dwFlags);
|
| 1467 | 1467 | }
|
| 1468 | | - HRESULT WINAPI EndScene();
|
| 1469 | | - HRESULT WINAPI EnumTextureFormats(LPD3DENUMPIXELFORMATSCALLBACK lpd3dEnumPixelProc, LPVOID lpArg);
|
| 1470 | | - HRESULT WINAPI GetCaps(LPD3DDEVICEDESC lpD3DHWDevDesc, LPD3DDEVICEDESC lpD3DHELDevDesc);
|
| 1471 | | - HRESULT WINAPI GetClipStatus(LPD3DCLIPSTATUS lpD3DClipStatus);
|
| 1472 | | - HRESULT WINAPI GetCurrentViewport(LPDIRECT3DVIEWPORT3 *lplpd3dViewport);
|
| 1473 | | - HRESULT WINAPI GetDirect3D(LPDIRECT3D3 *lplpD3D);
|
| 1474 | | - HRESULT WINAPI GetLightState(D3DLIGHTSTATETYPE dwLightStateType, LPDWORD lpdwLightState);
|
| 1475 | | - HRESULT WINAPI GetRenderState(D3DRENDERSTATETYPE dwRenderStateType, LPDWORD lpdwRenderState);
|
| 1476 | | - HRESULT WINAPI GetRenderTarget(LPDIRECTDRAWSURFACE4 *lplpRenderTarget);
|
| 1477 | | - HRESULT WINAPI GetStats(LPD3DSTATS lpD3DStats);
|
| 1478 | | - HRESULT WINAPI GetTexture(DWORD dwStage, LPDIRECT3DTEXTURE2 * lplpTexture);
|
| 1479 | | - HRESULT WINAPI GetTextureStageState(DWORD dwStage, D3DTEXTURESTAGESTATETYPE dwState, LPDWORD lpdwValue);
|
| 1480 | | - HRESULT WINAPI GetTransform(D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix);
|
| 1481 | | - HRESULT WINAPI Index(WORD wVertexIndex);
|
| 1482 | | - HRESULT WINAPI MultiplyTransform(D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix);
|
| | 1468 | +
|
| | 1469 | +HRESULT WINAPI glDirect3DDevice3::EndScene()
|
| | 1470 | +{
|
| | 1471 | + if(!this) return DDERR_INVALIDOBJECT;
|
| | 1472 | + return glD3DDev7->EndScene();
|
| | 1473 | +}
|
| | 1474 | +
|
| | 1475 | +HRESULT WINAPI glDirect3DDevice3::EnumTextureFormats(LPD3DENUMPIXELFORMATSCALLBACK lpd3dEnumPixelProc, LPVOID lpArg)
|
| | 1476 | +{
|
| | 1477 | + if(!this) return DDERR_INVALIDOBJECT;
|
| | 1478 | + return glD3DDev7->EnumTextureFormats(lpd3dEnumPixelProc,lpArg);
|
| | 1479 | +}
|
| | 1480 | +
|
| | 1481 | +HRESULT WINAPI glDirect3DDevice3::GetCaps(LPD3DDEVICEDESC lpD3DHWDevDesc, LPD3DDEVICEDESC lpD3DHELDevDesc)
|
| | 1482 | +{
|
| | 1483 | + if(!this) return DDERR_INVALIDOBJECT;
|
| | 1484 | + return glD3DDev7->GetCaps3(lpD3DHWDevDesc,lpD3DHELDevDesc);
|
| | 1485 | +}
|
| | 1486 | +
|
| | 1487 | +HRESULT WINAPI glDirect3DDevice3::GetClipStatus(LPD3DCLIPSTATUS lpD3DClipStatus)
|
| | 1488 | +{
|
| | 1489 | + if(!this) return DDERR_INVALIDOBJECT;
|
| | 1490 | + return glD3DDev7->GetClipStatus(lpD3DClipStatus);
|
| | 1491 | +}
|
| | 1492 | +
|
| | 1493 | +HRESULT WINAPI glDirect3DDevice3::GetCurrentViewport(LPDIRECT3DVIEWPORT3 *lplpd3dViewport)
|
| | 1494 | +{
|
| | 1495 | + if(!this) return DDERR_INVALIDOBJECT;
|
| | 1496 | + return glD3DDev7->GetCurrentViewport(lplpd3dViewport);
|
| | 1497 | +}
|
| | 1498 | +
|
| | 1499 | +HRESULT WINAPI glDirect3DDevice3::GetDirect3D(LPDIRECT3D3 *lplpD3D)
|
| | 1500 | +{
|
| | 1501 | + if(!this) return DDERR_INVALIDOBJECT;
|
| | 1502 | + LPDIRECT3D7 d3d7;
|
| | 1503 | + HRESULT err = glD3DDev7->GetDirect3D(&d3d7);
|
| | 1504 | + if(!d3d7) return err;
|
| | 1505 | + d3d7->QueryInterface(IID_IDirect3D3,(void**)lplpD3D);
|
| | 1506 | + d3d7->Release();
|
| | 1507 | + return err;
|
| | 1508 | +}
|
| | 1509 | +
|
| | 1510 | +HRESULT WINAPI glDirect3DDevice3::GetLightState(D3DLIGHTSTATETYPE dwLightStateType, LPDWORD lpdwLightState)
|
| | 1511 | +{
|
| | 1512 | + if(!this) return DDERR_INVALIDOBJECT;
|
| | 1513 | + return glD3DDev7->GetLightState(dwLightStateType,lpdwLightState);
|
| | 1514 | +}
|
| | 1515 | +
|
| | 1516 | +HRESULT WINAPI glDirect3DDevice3::GetRenderState(D3DRENDERSTATETYPE dwRenderStateType, LPDWORD lpdwRenderState)
|
| | 1517 | +{
|
| | 1518 | + if(!this) return DDERR_INVALIDOBJECT;
|
| | 1519 | + return glD3DDev7->GetRenderState(dwRenderStateType,lpdwRenderState);
|
| | 1520 | +}
|
| | 1521 | +
|
| | 1522 | +HRESULT WINAPI glDirect3DDevice3::GetRenderTarget(LPDIRECTDRAWSURFACE4 *lplpRenderTarget)
|
| | 1523 | +{
|
| | 1524 | + if(!this) return DDERR_INVALIDOBJECT;
|
| | 1525 | + LPDIRECTDRAWSURFACE7 dds7;
|
| | 1526 | + HRESULT err = glD3DDev7->GetRenderTarget(&dds7);
|
| | 1527 | + if(!dds7) return err;
|
| | 1528 | + dds7->QueryInterface(IID_IDirectDrawSurface7,(void**)lplpRenderTarget);
|
| | 1529 | + dds7->Release();
|
| | 1530 | + return err;
|
| | 1531 | +}
|
| | 1532 | +
|
| | 1533 | +HRESULT WINAPI glDirect3DDevice3::GetStats(LPD3DSTATS lpD3DStats)
|
| | 1534 | +{
|
| | 1535 | + if(!this) return DDERR_INVALIDOBJECT;
|
| | 1536 | + return glD3DDev7->GetStats(lpD3DStats);
|
| | 1537 | +}
|
| | 1538 | +
|
| | 1539 | +HRESULT WINAPI glDirect3DDevice3::GetTexture(DWORD dwStage, LPDIRECT3DTEXTURE2 * lplpTexture)
|
| | 1540 | +{
|
| | 1541 | + if(!this) return DDERR_INVALIDOBJECT;
|
| | 1542 | + LPDIRECTDRAWSURFACE7 dds7;
|
| | 1543 | + HRESULT err = glD3DDev7->GetTexture(dwStage,&dds7);
|
| | 1544 | + if(!dds7) return err;
|
| | 1545 | + dds7->QueryInterface(IID_IDirect3DTexture2,(void**)lplpTexture);
|
| | 1546 | + dds7->Release();
|
| | 1547 | + return err;
|
| | 1548 | +}
|
| | 1549 | +
|
| | 1550 | +HRESULT WINAPI glDirect3DDevice3::GetTextureStageState(DWORD dwStage, D3DTEXTURESTAGESTATETYPE dwState, LPDWORD lpdwValue)
|
| | 1551 | +{
|
| | 1552 | + if(!this) return DDERR_INVALIDOBJECT;
|
| | 1553 | + return glD3DDev7->GetTextureStageState(dwStage,dwState,lpdwValue);
|
| | 1554 | +}
|
| | 1555 | +
|
| | 1556 | +HRESULT WINAPI glDirect3DDevice3::GetTransform(D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix)
|
| | 1557 | +{
|
| | 1558 | + if(!this) return DDERR_INVALIDOBJECT;
|
| | 1559 | + return glD3DDev7->GetTransform(dtstTransformStateType,lpD3DMatrix);
|
| | 1560 | +}
|
| | 1561 | +
|
| | 1562 | +HRESULT WINAPI glDirect3DDevice3::Index(WORD wVertexIndex)
|
| | 1563 | +{
|
| | 1564 | + if(!this) return DDERR_INVALIDOBJECT;
|
| | 1565 | + return glD3DDev7->Index(wVertexIndex);
|
| | 1566 | +}
|
| | 1567 | +
|
| | 1568 | +HRESULT WINAPI glDirect3DDevice3::MultiplyTransform(D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix)
|
| | 1569 | +{
|
| | 1570 | + if(!this) return DDERR_INVALIDOBJECT;
|
| | 1571 | + return glD3DDev7->MultiplyTransform(dtstTransformStateType,lpD3DMatrix);
|
| | 1572 | +}
|
| 1483 | 1573 | HRESULT WINAPI NextViewport(LPDIRECT3DVIEWPORT3 lpDirect3DViewport, LPDIRECT3DVIEWPORT3 *lplpAnotherViewport, DWORD dwFlags);
|
| 1484 | 1574 | HRESULT WINAPI SetClipStatus(LPD3DCLIPSTATUS lpD3DClipStatus);
|
| 1485 | 1575 | HRESULT WINAPI SetCurrentViewport(LPDIRECT3DVIEWPORT3 lpd3dViewport);
|
| Index: ddraw/glDirect3DDevice.h |
| — | — | @@ -129,8 +129,14 @@ |
| 130 | 130 | HRESULT DeleteViewport(LPDIRECT3DVIEWPORT3 lpDirect3DViewport);
|
| 131 | 131 | HRESULT Begin(D3DPRIMITIVETYPE d3dpt, DWORD dwVertexTypeDesc, DWORD dwFlags);
|
| 132 | 132 | HRESULT BeginIndexed(D3DPRIMITIVETYPE dptPrimitiveType, DWORD dwVertexTypeDesc, LPVOID lpvVertices, DWORD dwNumVertices, DWORD dwFlags);
|
| | 133 | + HRESULT Index(WORD wVertexIndex);
|
| 133 | 134 | HRESULT End(DWORD dwFlags);
|
| 134 | 135 | HRESULT ComputeSphereVisibility3(LPD3DVECTOR lpCenters, LPD3DVALUE lpRadii, DWORD dwNumSpheres, DWORD dwFlags, LPDWORD lpdwReturnValues);
|
| | 136 | + HRESULT GetCaps3(LPD3DDEVICEDESC lpD3DHWDevDesc, LPD3DDEVICEDESC lpD3DHELDevDesc);
|
| | 137 | + HRESULT GetCurrentViewport(LPDIRECT3DVIEWPORT3 *lplpd3dViewport);
|
| | 138 | + HRESULT GetLightState(D3DLIGHTSTATETYPE dwLightStateType, LPDWORD lpdwLightState);
|
| | 139 | + HRESULT SetLightState(D3DLIGHTSTATETYPE dwLightStateType, DWORD dwLightState);
|
| | 140 | + HRESULT GetStats(LPD3DSTATS lpD3DStats);
|
| 135 | 141 | __int64 SelectShader(GLVERTEX *VertexType);
|
| 136 | 142 | void UpdateNormalMatrix();
|
| 137 | 143 | GLfloat matWorld[16];
|