|
Links
|
Tom has specifically asked for feedback on the design changes. Please let him know your ideas, feelings and bugs. Either use directx@microsoft.com or contact him via his blog.
Tom has also informed me that about 40% of D3DX is unintentionally missing from the beta. So don't assume any classes that are gone are gone for good.
The following are the changes I have determined in the Microsoft.DirectX.Direct3D namespace. My analysis is as good as my tools and my eyesight. Please check the facts yourself before berating anyone in public forums or making business decisions. Please let me know if you find any errors.
Deleted Classes/Structs (or maybe moved/renamed and I've not found them - see note above):
- MeshContainer
- MeshData
- MiscCaps
- PatchInformation
- PatchMesh
- PipeLineTimings
- PixelShaderCaps
- ProgressiveMesh
- PropertyDescription
- PrtBuffer
- PrtCompressedBuffer
- PrtEngine
- PrtSplitMeshClusterData
- PrtSplitMeshVertexData
- RasterCaps
- ResourceManager
- ResourceStats
- SaveUserData
- ShadeCaps
- ShaderConstantInformation
- ShaderConstantTable
- ShaderDebugInformation
- ShaderFileInformation
- ShaderInstructionInformation
- ShaderLoader
- ShaderStructMemberInformation
- ShaderTypeInformation
- ShaderVariableInformation
- ShaderWriteInformation
- StageTimings
- SimplifactionMesh
- SkinInformation
- SkinMesh
- SphericalHarmonicMaterial
- SphericalHarmonics
- StencilCaps
- SurfaceLoader
- TextureCaps
- TextureGutterHelper
- TextureLoader
- TextureOperationCaps
- UVAtlas
- UVAtlasOutput
- VertexCache
- VertexFormatCaps
- VertexProcessingCaps
- VertexShaderCaps
- VertexStats
- VertexTextureCoordinates
- VolumeLoader
Changed Classes/Structs:
- Common Changes
- GetHashCode - added to lots of classes
- ToString - becomes sealed
- Public fields changed to property get/set
- get_{PropertyName} functions added to match to property get functions. I assume this to allow languages that don't understand properties to have access?
- Default Constructors gone for structs - is this a .net 2.0 thing?
- GetObjectByValue - removed from most (all?) classes
- Constructor(IntPtr) - removed from most (all?) classes
- Mesh
- New constructors take streams, filenames and XFileData objects - these replace all of the FromFile, FromStream, FromX overloads.
- FromFile, FromStream, FromX - replaced with constructors
- Clean, ComputeTangent, LockAttributeBuffer, Optimize, OptimizeInPlace, Polygon, Box, Sphere, Cylinder, Teapot, Simplify, TesselateNPatches, TextFromFont, Validate, WeldVertices, UnlockAttributeBuffer - takes GraphicsBuffer instead of GraphicsStream and int[]. Means a reduction in overloads in some cases. Gotta love the GraphicsBuffer stuff.
- ConvertMeshSubsetToSingleStrip/ToStrips - removed
- GetAllIntersections[OnSubset], GetClosestIntersection[onSubset] - new intersection functions to replace Intersects(...., out) and IntersectsSubset(...., out)
- LoadHierarchy, Save, SaveHierarchy - removed
- MeshOptions
- VertexSystemMem, IndexBufferSystemMem, SystemMem - spelled out in full (Memory)
- PassDescription
- PixelShaderFunction, VertexShaderFunction - now use GraphicsBuffer
- PixelShader
- No longer sealed
- GetFunction - becomes Function and returns a GraphicsBuffer
- PresentParams
- No longer sealed
- DeviceWindow - removed
- ForceNoMultiThreadedFlag - becomes DisableMultiThreadedFlag
- Windowed - becomes IsWindowed
- MultiSample - becomes MultiSampleType
- Query
- No longer sealed
- Begin, End, WaitForData - added
- GetData - now uses GraphicsBuffer<T>
- RasterStatus
- InVBlank - spelled out in full (Vertical)
- RectanglePatch
- BasisType - becomes Basis
- Degree - becomes Order
- RenderStateManager
- AlphaFunction, CounterClockwiseStencilFunction, StencilFunction, ZBufferFunction - return a CompareFunction instead of a Compare
- AmbientColor - becomes AmbientValue
- BlendFactorColor - becomes BlendFactorValue
- RenderToEnvironmentDescription - becomes RenderToEnvironmentMapDescription
- DepthStencil - becomes IsDepthStencil
- RenderToSurface
- BeginScene - Now takes a nullable<Viewport&;gt;
- RenderToSurface
- DepthStencil - becomes IsDepthStencil
- Resource
- cachedPool - added.
- GetPrivateData - returns a GraphicsBuffer instead of byte[]
- ScaleRotateTransform
- Rotation - becomes Rotate
- Scaling - becomes Scale
- Translation - becomes Translate
- Sprite
- Draw - now takes nullable parameters
- Draw(..., Rectangle*, ...), Draw2D - removed
- SetWorldViewLH/RH - spelled out in full
- Surface
- LockRectangle - becomes Lock. All GraphicsSteams and arrays become GraphicsBuffers
- UnlockRectangle - becomes Unlock
- SurfaceDescription
- Pool - becomes MemoryPool
- SwapChain
- GetBackBuffer - added 2nd parameter BackBufferType
- Present(Control) - overloads removed
- Present(...various...) - replaced with single oveload with nullable<Rectangle>'s
- Texture
- No longer sealed
- New constructors taking streams and filenames replacing FromBitmap and FromStream
- FromBitmap, FromStream - replaced with constructors
- LockRectangle - becomes Lock and all GraphicsStreams and arrays replaced with GraphicsBuffer
- UnlockRectangle - becomes Unlock
- CheckRequirements - added
- TextureRequirements
- Default constructor removed - now need to specify all properties to create
- TextureShader
- No longer sealed
- pCachedData, pCachedFunction - added
- ConstantBuffer - becomes BufferData and returns GraphicsBuffer
- TrackDescription
- Enbale - becomes IsEnabled
- Transforms - becomes TransformManager
- Set/GetWorldMatrix - becomes Set/GetWorldMatrixByIndex
- TrianglePatchInformation
- Degree - becomes Order
- BasisType - becomes Basis
- ValidateDeviceParams - becomes ValidateDeviceParameters
- Passes - becomes NumberPasses
- VertexBuffer
- Lock - now uses GraphicsBuffer instead of GraphicsStream and arrays
- CreateGeneric, ==, != - added
- SizeInBytes, SetData - removed
- VertexBufferDescription
- Pool - becomes MemoryPool
- VertexShader
- GetFunction - becomes Function and returns a Graphics buffer rather than int[]
- Volume
- Set/GetPrivateData - now returns GraphicsBuffer
- LockBox - becomes Lock and uses GraphicsBuffer. Overloads removed with nullable types.
- ==, !== - added
- VolumeDescription
- Pool - becomes MemoryPool
- VolumeTexture
- New constructors taking sterm and filenames
- AddDirtyBox - overloads replaced by Nullable types
- LockBox - becomes Lock and uses GraphicsBuffer and Nullable types
- UnlockBox - becomes Unlock
- VolumeTextureRequirements
- Default constructor removed - now needs all properties to create.
- WeldEpsilons
- Changed from struct to class
- TextureCoordinates - becomes GetTextureCoordinates
- XFileData
- Lock - now uses GraphicsBuffer
- SetData - removed
New Classes/Structs:
- Performance
- StreamInformation
Issues/Inconsistencies/Things that SHOULD have been changed/While we are making major changes lets do this too?
- Mesh::Mesh - More From* overloads removed than constructors added. Not sure if any functionality is lost here.
- PixelShader - looks like Function should replace GetFunction. So why doesGetFunction still exisit with a GraphicsBuffer parameter?
- PresentParams::DeviceWindow, SwapChain::Present - see other comments, the divorce from WinForms needs good justification or put it back please.
- RenderToSurface::BeginScene, SwapChain::Present, Volume::Lock, VolumeTexture::AddDirtyBox, VolumeTexture::Lock - using nullable types is not supposed to replace overloads.
- Resource::cachedPool - No get/set accesors - should this be public?
- Sprite::Draw - uses nullable types to get C style optional arguments. Is this recomended usage?
- TextureShader::pCachedData, pCachedFunction - added. No get/set should these be public?
- TransformManager::Set/GetWorldMatrixByIndex - Why use ByIndex when you could use a proper index []
- ValidateDeviceParameters::NumberPasses - should be NumberOfPasses
- What replaces VertexBuffer::SetData?
- Volume::Set/GetPrivateData - is the data private or not? If so then we should set it. Also why not a property - why a set/get function?
- What is an XFileSaveData and an XFileSaveObject object? OO naming conventions suggest that classes map to actual things. Now I've not used these APIs so take this with a pinch of salt, but this doesn't feel right.
- Lots of classes that used to be sealed, are no longer sealed - is this in progress or can we really start to use this?
Updated 10/10/2005 8:00:00 PM by Zman
|
|