Initial
This commit is contained in:
53
ddraw/DIRECT3D.CPP
Normal file
53
ddraw/DIRECT3D.CPP
Normal file
@@ -0,0 +1,53 @@
|
||||
#include <ddraw/direct3d.hpp>
|
||||
#include <ddraw/devenum.hpp>
|
||||
#include <ddraw/devdesc.hpp>
|
||||
#include <ddraw/surface.hpp>
|
||||
#include <ddraw/device3d.hpp>
|
||||
|
||||
Direct3D::Direct3D(void)
|
||||
{
|
||||
}
|
||||
|
||||
Direct3D::Direct3D(const Direct3D &someDirect3D)
|
||||
{ // private implementation
|
||||
*this=someDirect3D;
|
||||
}
|
||||
|
||||
Direct3D::~Direct3D()
|
||||
{
|
||||
destroy();
|
||||
}
|
||||
|
||||
Direct3D &Direct3D::operator=(const Direct3D &/*someDirect3D*/)
|
||||
{ // private implementation
|
||||
return *this;
|
||||
}
|
||||
|
||||
void Direct3D::destroy(void)
|
||||
{
|
||||
if(!isOkay())return;
|
||||
operator->()->Release();
|
||||
SmartPointer<IDirect3D3>::destroy();
|
||||
}
|
||||
|
||||
BOOL Direct3D::enumerateDevice(DeviceEnumerator &deviceEnumerator)
|
||||
{
|
||||
if(!isOkay())return FALSE;
|
||||
deviceEnumerator.enumeratedDevices().remove();
|
||||
operator->()->EnumDevices(DeviceEnumerator::enumDeviceCallback,&deviceEnumerator);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
DirectDrawError Direct3D::createDevice(const DeviceDescription &deviceDescription,Surface &surface,DirectDevice3D &device3D)
|
||||
{
|
||||
LPDIRECT3DDEVICE3 lpDirect3DDevice3;
|
||||
DirectDrawError status;
|
||||
|
||||
// device3D.destroy();
|
||||
if(!isOkay())return DirectDrawError::GenericFailure;
|
||||
status=DirectDrawError::DirectDrawResult(operator->()->CreateDevice(deviceDescription.guid(),(IDirectDrawSurface4*)((SmartPointer<IDirectDrawSurface4>&)surface),&lpDirect3DDevice3,0));
|
||||
if(!status.okResult())return status;
|
||||
device3D=lpDirect3DDevice3;
|
||||
return status;
|
||||
// (SmartPointer<IDirect3DDevice3>&)device3D=lpDirect3DDevice3;
|
||||
}
|
||||
Reference in New Issue
Block a user