예제 #1
0
bool    hsG3DDeviceSelector::IGetD3DCardInfo( hsG3DDeviceRecord &record,            // In
        void *driverInfo,
        void *deviceInfo,
        DWORD *vendorID, DWORD *deviceID, // Out
        char **driverString, char **descString  )
{
    D3DEnum_DriverInfo  *driverD3DInfo = (D3DEnum_DriverInfo *)driverInfo;
    D3DEnum_DeviceInfo  *deviceD3DInfo = (D3DEnum_DeviceInfo *)deviceInfo;

    D3DADAPTER_IDENTIFIER9  *adapterInfo;

    adapterInfo = &driverD3DInfo->fAdapterInfo;

    /// Print out to our demo data file
    plDemoDebugFile::Write( "DeviceSelector detected DX Direct3D device. Info:" );
    plDemoDebugFile::Write( "   Driver Description", (char *)adapterInfo->Description );
    plDemoDebugFile::Write( "   Driver Name", (char *)adapterInfo->Driver );
    plDemoDebugFile::Write( "   Vendor ID", (int32_t)adapterInfo->VendorId );
    plDemoDebugFile::Write( "   Device ID", (int32_t)adapterInfo->DeviceId );
    plDemoDebugFile::Write( "   Version", (char *)record.GetDriverVersion() );
    plDemoDebugFile::Write( "   Memory size (in MB)", record.GetMemoryBytes() / ( 1024 * 1024 ) );
    plDemoDebugFile::Write( "   Memory size (in bytes)", record.GetMemoryBytes() );

    *vendorID = adapterInfo->VendorId;
    *deviceID = adapterInfo->DeviceId;
    *driverString = adapterInfo->Driver;
    *descString = adapterInfo->Description;

    return true;
}