OSDN Git Service

Merge branch 'feature/#36529_SlimDXからSharpDXへの移行' into develop
[dtxmania/dtxmania.git] / SlimDXc_Jun2010(VC++2008) / source / direct3d9 / CubeTexture.cpp
diff --git a/SlimDXc_Jun2010(VC++2008)/source/direct3d9/CubeTexture.cpp b/SlimDXc_Jun2010(VC++2008)/source/direct3d9/CubeTexture.cpp
deleted file mode 100644 (file)
index 711c847..0000000
+++ /dev/null
@@ -1,416 +0,0 @@
-#include "stdafx.h"\r
-/*\r
-* Copyright (c) 2007-2010 SlimDX Group\r
-* \r
-* Permission is hereby granted, free of charge, to any person obtaining a copy\r
-* of this software and associated documentation files (the "Software"), to deal\r
-* in the Software without restriction, including without limitation the rights\r
-* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
-* copies of the Software, and to permit persons to whom the Software is\r
-* furnished to do so, subject to the following conditions:\r
-* \r
-* The above copyright notice and this permission notice shall be included in\r
-* all copies or substantial portions of the Software.\r
-* \r
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
-* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
-* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
-* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
-* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
-* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
-* THE SOFTWARE.\r
-*/\r
-#include <d3d9.h>\r
-#include <d3dx9.h>\r
-#include <vcclr.h>\r
-\r
-#include "../DataStream.h"\r
-#include "../ComObject.h"\r
-#include "../Utilities.h"\r
-\r
-#include "../math/Vector2.h"\r
-\r
-#include "Device.h"\r
-#include "D3DX.h"\r
-#include "CubeTexture.h"\r
-\r
-#include "Direct3D9Exception.h"\r
-\r
-using namespace System;\r
-using namespace System::IO;\r
-using namespace System::Runtime::InteropServices;\r
-\r
-namespace SlimDX\r
-{\r
-namespace Direct3D9\r
-{\r
-       void WINAPI NativeD3DXFill2D(D3DXVECTOR4 *out, CONST D3DXVECTOR2 *pTexCoord, CONST D3DXVECTOR2 *pTexelSize, LPVOID data);\r
-       void WINAPI NativeD3DXFill3D(D3DXVECTOR4 *out, CONST D3DXVECTOR3 *pTexCoord, CONST D3DXVECTOR3 *pTexelSize, LPVOID data);\r
-\r
-       CubeTexture::CubeTexture( SlimDX::Direct3D9::Device^ device, int edgeLength, int numLevels, Usage usage, Format format, Pool pool )\r
-       {\r
-               IDirect3DCubeTexture9* texture = NULL;\r
-               HRESULT hr = device->InternalPointer->CreateCubeTexture( edgeLength, numLevels, static_cast<DWORD>( usage ),\r
-                       static_cast<D3DFORMAT>( format ), static_cast<D3DPOOL>( pool ), &texture, NULL );\r
-               \r
-               if( RECORD_D3D9(hr).IsFailure )\r
-                       throw gcnew Direct3D9Exception( Result::Last );\r
-\r
-               Construct(texture);\r
-               if( pool == Pool::Default )\r
-                       this->IsDefaultPool = true;\r
-       }\r
-\r
-       CubeTexture::CubeTexture( SlimDX::Direct3D9::Device^ device, int edgeLength, int numLevels, Usage usage, Format format, Pool pool, [Out] IntPtr% sharedHandle )\r
-       {\r
-               IDirect3DCubeTexture9* texture = NULL;\r
-               HANDLE sharedHandleNative = NULL;\r
-               HRESULT hr = device->InternalPointer->CreateCubeTexture( edgeLength, numLevels, static_cast<DWORD>( usage ),\r
-                       static_cast<D3DFORMAT>( format ), static_cast<D3DPOOL>( pool ), &texture, &sharedHandleNative );\r
-               \r
-               if( RECORD_D3D9(hr).IsFailure )\r
-                       throw gcnew Direct3D9Exception( Result::Last );\r
-\r
-               Construct(texture);\r
-               sharedHandle = IntPtr(sharedHandleNative);\r
-               if( pool == Pool::Default )\r
-                       this->IsDefaultPool = true;\r
-       }\r
-\r
-       CubeTextureRequirements CubeTexture::CheckRequirements(SlimDX::Direct3D9::Device^ device, int size,\r
-               int numMipLevels, Usage usage, Format format, Pool pool)\r
-       {\r
-               CubeTextureRequirements result;                                 // Result.\r
-               D3DFORMAT d3dFormat = static_cast<D3DFORMAT>( format ); // Format.\r
-               HRESULT hr;                                                                     // Error code.\r
-\r
-               // Get texture requirements.\r
-               hr = D3DXCheckCubeTextureRequirements(device->InternalPointer, reinterpret_cast<UINT*>( &size ), \r
-                       reinterpret_cast<UINT*>( &numMipLevels ), static_cast<DWORD>( usage ),\r
-                       reinterpret_cast<D3DFORMAT*>( &d3dFormat ), static_cast<D3DPOOL>( pool ) );\r
-               \r
-               if( RECORD_D3D9(hr).IsFailure )\r
-                       return CubeTextureRequirements();\r
-\r
-               // Return proposed values.\r
-               result.Size = size;\r
-               result.Format = format;\r
-               result.MipLevelCount = numMipLevels;\r
-\r
-               return result;\r
-       }\r
-\r
-       CubeTexture^ CubeTexture::FromMemory_Internal( SlimDX::Direct3D9::Device^ device, const void* memory, UINT sizeBytes,\r
-               int size, int numLevels, Usage usage, Format format, Pool pool, Filter filter, Filter mipFilter, int colorKey,\r
-               ImageInformation* imageInformation, PaletteEntry* palette )\r
-       {\r
-               IDirect3DCubeTexture9* texture = NULL;\r
-\r
-               HRESULT hr = D3DXCreateCubeTextureFromFileInMemoryEx( device->InternalPointer, memory, sizeBytes, size, numLevels,\r
-                       static_cast<DWORD>( usage ), static_cast<D3DFORMAT>( format ), static_cast<D3DPOOL>( pool ), static_cast<DWORD>( filter ), static_cast<DWORD>( mipFilter ),\r
-                       static_cast<D3DCOLOR>( colorKey ), reinterpret_cast<D3DXIMAGE_INFO*>( imageInformation ), \r
-                       reinterpret_cast<PALETTEENTRY*>( palette ), &texture );\r
-               \r
-               if( RECORD_D3D9(hr).IsFailure )\r
-               {\r
-                       palette = nullptr;\r
-                       return nullptr;\r
-               }\r
-\r
-               CubeTexture^ result = gcnew CubeTexture( texture, nullptr );\r
-               if( pool == Pool::Default )\r
-                       result->IsDefaultPool = true;\r
-               return result;\r
-       }\r
-\r
-       CubeTexture^ CubeTexture::FromMemory( SlimDX::Direct3D9::Device^ device, array<Byte>^ memory, int size, int numLevels,\r
-               Usage usage, Format format, Pool pool, Filter filter, Filter mipFilter, int colorKey,\r
-               [Out] ImageInformation% imageInformation, [Out] array<PaletteEntry>^% palette )\r
-       {\r
-               pin_ptr<unsigned char> pinnedMemory = &memory[0];\r
-               imageInformation = ImageInformation();\r
-               pin_ptr<ImageInformation> pinnedImageInfo = &imageInformation;\r
-               palette = gcnew array<PaletteEntry>( 256 );\r
-               pin_ptr<PaletteEntry> pinnedPalette = &palette[0];\r
-\r
-               return FromMemory_Internal( device, pinnedMemory, static_cast<UINT>( memory->Length ), size, numLevels,\r
-                       usage, format, pool, filter, mipFilter, colorKey, pinnedImageInfo, pinnedPalette );\r
-       }\r
-\r
-       CubeTexture^ CubeTexture::FromMemory( SlimDX::Direct3D9::Device^ device, array<Byte>^ memory, int size, int numLevels,\r
-               Usage usage, Format format, Pool pool, Filter filter, Filter mipFilter, int colorKey,\r
-               [Out] ImageInformation% imageInformation )\r
-       {\r
-               pin_ptr<unsigned char> pinnedMemory = &memory[0];\r
-               pin_ptr<ImageInformation> pinnedImageInfo = &imageInformation;\r
-\r
-               return FromMemory_Internal( device, pinnedMemory, static_cast<UINT>( memory->Length ), size, numLevels,\r
-                       usage, format, pool, filter, mipFilter, colorKey, pinnedImageInfo, NULL );\r
-       }\r
-\r
-       CubeTexture^ CubeTexture::FromMemory( SlimDX::Direct3D9::Device^ device, array<Byte>^ memory, int size, int numLevels,\r
-               Usage usage, Format format, Pool pool, Filter filter, Filter mipFilter, int colorKey )\r
-       {\r
-               pin_ptr<unsigned char> pinnedMemory = &memory[0];\r
-\r
-               return FromMemory_Internal( device, pinnedMemory, static_cast<UINT>( memory->Length ), size, numLevels,\r
-                       usage, format, pool, filter, mipFilter, colorKey, NULL, NULL );\r
-       }\r
-\r
-       CubeTexture^ CubeTexture::FromMemory( SlimDX::Direct3D9::Device^ device, array<Byte>^ memory, Usage usage, Pool pool )\r
-       {\r
-               return CubeTexture::FromMemory( device, memory, D3DX::Default, D3DX::Default,\r
-                       usage, Format::Unknown, pool, Filter::Default, Filter::Default, 0 );\r
-       }\r
-\r
-       CubeTexture^ CubeTexture::FromMemory( SlimDX::Direct3D9::Device^ device, array<Byte>^ memory )\r
-       {\r
-               return CubeTexture::FromMemory( device, memory, Usage::None, Pool::Managed );\r
-       }\r
-\r
-       CubeTexture^ CubeTexture::FromStream( SlimDX::Direct3D9::Device^ device, Stream^ stream, int sizeBytes, int size, int numLevels,\r
-               Usage usage, Format format, Pool pool, Filter filter, Filter mipFilter, int colorKey,\r
-               [Out] ImageInformation% imageInformation, [Out] array<PaletteEntry>^% palette )\r
-       {\r
-               DataStream^ ds;\r
-               array<Byte>^ data = Utilities::ReadStream( stream, sizeBytes, &ds );\r
-               \r
-               if( data == nullptr )\r
-               {\r
-                       palette = gcnew array<PaletteEntry>( 256 );\r
-                       pin_ptr<PaletteEntry> pinnedPalette = &palette[0];\r
-                       imageInformation = ImageInformation();\r
-                       pin_ptr<ImageInformation> pinnedImageInfo = &imageInformation;\r
-\r
-                       CubeTexture^ texture = FromMemory_Internal( device, ds->PositionPointer, sizeBytes, size, numLevels,\r
-                               usage, format, pool, filter, mipFilter, colorKey, pinnedImageInfo, pinnedPalette );\r
-\r
-                       ds->Seek( sizeBytes, SeekOrigin::Current );\r
-                       return texture;\r
-               }\r
-\r
-               return CubeTexture::FromMemory( device, data, size, numLevels, usage, format, pool, filter, mipFilter, \r
-                       colorKey, imageInformation, palette );\r
-       }\r
-\r
-       CubeTexture^ CubeTexture::FromStream( SlimDX::Direct3D9::Device^ device, Stream^ stream, int sizeBytes, int size, int numLevels,\r
-               Usage usage, Format format, Pool pool, Filter filter, Filter mipFilter, int colorKey,\r
-               [Out] ImageInformation% imageInformation )\r
-       {\r
-               DataStream^ ds;\r
-               array<Byte>^ data = Utilities::ReadStream( stream, sizeBytes, &ds );\r
-               \r
-               if( data == nullptr )\r
-               {\r
-                       imageInformation = ImageInformation();\r
-                       pin_ptr<ImageInformation> pinnedImageInfo = &imageInformation;\r
-\r
-                       CubeTexture^ texture = FromMemory_Internal( device, ds->PositionPointer, sizeBytes, size, numLevels,\r
-                               usage, format, pool, filter, mipFilter, colorKey, pinnedImageInfo, NULL );\r
-\r
-                       ds->Seek( sizeBytes, SeekOrigin::Current );\r
-                       return texture;\r
-               }\r
-\r
-               return CubeTexture::FromMemory( device, data, size, numLevels, usage, format, pool, filter, mipFilter, \r
-                       colorKey, imageInformation );\r
-       }\r
-\r
-       CubeTexture^ CubeTexture::FromStream( SlimDX::Direct3D9::Device^ device, Stream^ stream, int sizeBytes, int size, int numLevels,\r
-               Usage usage, Format format, Pool pool, Filter filter, Filter mipFilter, int colorKey )\r
-       {\r
-               DataStream^ ds;\r
-               array<Byte>^ data = Utilities::ReadStream( stream, sizeBytes, &ds );\r
-               \r
-               if( data == nullptr )\r
-               {\r
-                       CubeTexture^ texture = FromMemory_Internal( device, ds->PositionPointer, sizeBytes, size, numLevels,\r
-                               usage, format, pool, filter, mipFilter, colorKey, NULL, NULL );\r
-\r
-                       ds->Seek( sizeBytes, SeekOrigin::Current );\r
-                       return texture;\r
-               }\r
-\r
-               return CubeTexture::FromMemory( device, data, size, numLevels, usage, format, pool, filter, mipFilter, colorKey );\r
-       }\r
-\r
-       CubeTexture^ CubeTexture::FromStream( SlimDX::Direct3D9::Device^ device, Stream^ stream, int size, int numLevels,\r
-               Usage usage, Format format, Pool pool, Filter filter, Filter mipFilter, int colorKey )\r
-       {\r
-               return CubeTexture::FromStream( device, stream, 0, size, numLevels, usage, format, pool, filter, mipFilter, colorKey );\r
-       }\r
-\r
-       CubeTexture^ CubeTexture::FromStream( SlimDX::Direct3D9::Device^ device, Stream^ stream, Usage usage, Pool pool )\r
-       {\r
-               return CubeTexture::FromStream( device, stream, D3DX::Default, D3DX::Default,\r
-                       usage, Format::Unknown, pool, Filter::Default, Filter::Default, 0 );\r
-       }\r
-\r
-       CubeTexture^ CubeTexture::FromStream( SlimDX::Direct3D9::Device^ device, Stream^ stream )\r
-       {\r
-               return CubeTexture::FromStream( device, stream, Usage::None, Pool::Managed );\r
-       }\r
-\r
-       CubeTexture^ CubeTexture::FromFile( SlimDX::Direct3D9::Device^ device, String^ fileName, int size, int numLevels,\r
-               Usage usage, Format format, Pool pool, Filter filter, Filter mipFilter, int colorKey,\r
-               [Out] ImageInformation% imageInformation, [Out] array<PaletteEntry>^% palette )\r
-       {\r
-               IDirect3DCubeTexture9* texture = NULL;\r
-               pin_ptr<const wchar_t> pinnedName = PtrToStringChars( fileName );\r
-               imageInformation = ImageInformation();\r
-               pin_ptr<ImageInformation> pinnedImageInfo = &imageInformation;\r
-               palette = gcnew array<PaletteEntry>( 256 );\r
-               pin_ptr<PaletteEntry> pinnedPalette = &palette[0];\r
-\r
-               HRESULT hr = D3DXCreateCubeTextureFromFileEx( device->InternalPointer, pinnedName, size, \r
-                       numLevels, static_cast<DWORD>( usage ), static_cast<D3DFORMAT>( format ), static_cast<D3DPOOL>( pool ), static_cast<DWORD>( filter ), static_cast<DWORD>( mipFilter ), \r
-                       colorKey, reinterpret_cast<D3DXIMAGE_INFO*>( pinnedImageInfo ), reinterpret_cast<PALETTEENTRY*>( pinnedPalette ), &texture );\r
-               \r
-               if( RECORD_D3D9(hr).IsFailure )\r
-               {\r
-                       palette = nullptr;\r
-                       return nullptr;\r
-               }\r
-\r
-               CubeTexture^ result = gcnew CubeTexture( texture, nullptr );;\r
-               if( pool == Pool::Default )\r
-                       result->IsDefaultPool = true;\r
-               return result;\r
-       }\r
-\r
-       CubeTexture^ CubeTexture::FromFile( SlimDX::Direct3D9::Device^ device, String^ fileName, int size, int numLevels,\r
-               Usage usage, Format format, Pool pool, Filter filter, Filter mipFilter, int colorKey,\r
-               [Out] ImageInformation% imageInformation )\r
-       {\r
-               IDirect3DCubeTexture9* texture = NULL;\r
-               pin_ptr<const wchar_t> pinnedName = PtrToStringChars( fileName );\r
-               pin_ptr<ImageInformation> pinnedImageInfo = &imageInformation;\r
-\r
-               HRESULT hr = D3DXCreateCubeTextureFromFileEx( device->InternalPointer, pinnedName, size, \r
-                       numLevels, static_cast<DWORD>( usage ), static_cast<D3DFORMAT>( format ), static_cast<D3DPOOL>( pool ), static_cast<DWORD>( filter ), static_cast<DWORD>( mipFilter ), \r
-                       colorKey, reinterpret_cast<D3DXIMAGE_INFO*>( pinnedImageInfo ), NULL, &texture );\r
-               \r
-               if( RECORD_D3D9(hr).IsFailure )\r
-                       return nullptr;\r
-\r
-               CubeTexture^ result = gcnew CubeTexture( texture, nullptr );;\r
-               if( pool == Pool::Default )\r
-                       result->IsDefaultPool = true;\r
-               return result;\r
-       }\r
-\r
-       CubeTexture^ CubeTexture::FromFile( SlimDX::Direct3D9::Device^ device, String^ fileName, int size, int numLevels,\r
-               Usage usage, Format format, Pool pool, Filter filter, Filter mipFilter, int colorKey )\r
-       {\r
-               IDirect3DCubeTexture9* texture = NULL;\r
-               pin_ptr<const wchar_t> pinnedName = PtrToStringChars( fileName );\r
-\r
-               HRESULT hr = D3DXCreateCubeTextureFromFileEx( device->InternalPointer, pinnedName, size, \r
-                       numLevels, static_cast<DWORD>( usage ), static_cast<D3DFORMAT>( format ), static_cast<D3DPOOL>( pool ), static_cast<DWORD>( filter ), static_cast<DWORD>( mipFilter ), \r
-                       colorKey, NULL, NULL, &texture );\r
-               \r
-               if( RECORD_D3D9(hr).IsFailure )\r
-                       return nullptr;\r
-\r
-               CubeTexture^ result = gcnew CubeTexture( texture, nullptr );;\r
-               if( pool == Pool::Default )\r
-                       result->IsDefaultPool = true;\r
-               return result;\r
-       }\r
-\r
-       CubeTexture^ CubeTexture::FromFile( SlimDX::Direct3D9::Device^ device, String^ fileName, Usage usage, Pool pool )\r
-       {\r
-               return CubeTexture::FromFile( device, fileName, D3DX::Default, D3DX::Default,\r
-                       usage, Format::Unknown, pool, Filter::Default, Filter::Default, 0 );\r
-       }\r
-\r
-       CubeTexture^ CubeTexture::FromFile( SlimDX::Direct3D9::Device^ device, String^ fileName )\r
-       {\r
-               return CubeTexture::FromFile( device, fileName, Usage::None, Pool::Managed );\r
-       }\r
-\r
-       DataRectangle^ CubeTexture::LockRectangle( CubeMapFace face, int level, System::Drawing::Rectangle rect, LockFlags flags )\r
-       {\r
-               D3DLOCKED_RECT lockedRect;\r
-               RECT nativeRect = { rect.Left, rect.Top, rect.Right, rect.Bottom };\r
-               HRESULT hr = InternalPointer->LockRect( static_cast<D3DCUBEMAP_FACES>( face ), level, &lockedRect, &nativeRect, static_cast<DWORD>( flags ) );\r
-               \r
-               if( RECORD_D3D9(hr).IsFailure )\r
-                       return nullptr;\r
-               \r
-               int lockedSize = lockedRect.Pitch * GetLevelDescription( level ).Height;\r
-               \r
-               bool readOnly = (flags & LockFlags::ReadOnly) == LockFlags::ReadOnly;\r
-               DataRectangle^ outRect = gcnew DataRectangle( lockedRect.Pitch, gcnew DataStream( lockedRect.pBits, lockedSize, true, !readOnly, false ) );\r
-               return outRect;\r
-       }\r
-\r
-       DataRectangle^ CubeTexture::LockRectangle( CubeMapFace face, int level, LockFlags flags )\r
-       {\r
-               D3DLOCKED_RECT lockedRect;\r
-               HRESULT hr = InternalPointer->LockRect( static_cast<D3DCUBEMAP_FACES>( face ), level, &lockedRect, NULL, static_cast<DWORD>( flags ) );\r
-               \r
-               if( RECORD_D3D9(hr).IsFailure )\r
-                       return nullptr;\r
-               \r
-               int lockedSize = lockedRect.Pitch * GetLevelDescription( level ).Height;\r
-\r
-               bool readOnly = (flags & LockFlags::ReadOnly) == LockFlags::ReadOnly;\r
-               DataRectangle^ outRect = gcnew DataRectangle( lockedRect.Pitch, gcnew DataStream( lockedRect.pBits, lockedSize, true, !readOnly, false ) );\r
-               return outRect;\r
-       }\r
-\r
-       Result CubeTexture::UnlockRectangle( CubeMapFace face, int level )\r
-       {\r
-               HRESULT hr = InternalPointer->UnlockRect( static_cast<D3DCUBEMAP_FACES>( face ), level );\r
-               return RECORD_D3D9( hr );\r
-       }\r
-\r
-       Result CubeTexture::AddDirtyRectangle( CubeMapFace face )\r
-       {\r
-               HRESULT hr = InternalPointer->AddDirtyRect( static_cast<D3DCUBEMAP_FACES>( face ), NULL );\r
-               return RECORD_D3D9( hr );\r
-       }\r
-\r
-       Result CubeTexture::AddDirtyRectangle( CubeMapFace face, System::Drawing::Rectangle rect )\r
-       {\r
-               RECT nativeRect = { rect.Left, rect.Top, rect.Right, rect.Bottom };\r
-               HRESULT hr = InternalPointer->AddDirtyRect( static_cast<D3DCUBEMAP_FACES>( face ), &nativeRect );\r
-               return RECORD_D3D9( hr );\r
-       }\r
-\r
-       SurfaceDescription CubeTexture::GetLevelDescription( int level )\r
-       {\r
-               SurfaceDescription description;\r
-               HRESULT hr = InternalPointer->GetLevelDesc( level, reinterpret_cast<D3DSURFACE_DESC*>( &description ) );\r
-               RECORD_D3D9( hr );\r
-               return description;\r
-       }\r
-\r
-       Surface^ CubeTexture::GetCubeMapSurface( CubeMapFace face, int level )\r
-       {\r
-               IDirect3DSurface9* surface;\r
-               HRESULT hr = InternalPointer->GetCubeMapSurface( static_cast<D3DCUBEMAP_FACES>( face ), level, &surface );\r
-               \r
-               if( RECORD_D3D9(hr).IsFailure )\r
-                       return nullptr;\r
-               return Surface::FromPointer( surface );\r
-       }\r
-\r
-       Result CubeTexture::Fill(Fill3DCallback^ callback)\r
-       {\r
-               HRESULT hr;             // Error code.\r
-\r
-               // Call the function.\r
-               hr = D3DXFillCubeTexture(InternalPointer, NativeD3DXFill3D, Marshal::GetFunctionPointerForDelegate(callback).ToPointer());\r
-\r
-               return RECORD_D3D9(hr);\r
-       }\r
-\r
-       Result CubeTexture::Fill( TextureShader^ shader )\r
-       {\r
-               HRESULT hr = D3DXFillCubeTextureTX( InternalPointer, shader->InternalPointer );\r
-               return RECORD_D3D9( hr );\r
-       }\r
-}\r
-}
\ No newline at end of file