DirectX & SlimDX June, 2010

DirectX와 SlimDX가 업데이트 되었습니다.

DirectX SDK June, 2010
SlimDX SDK June, 2010


June 2010 SDK에서 바뀐 점
SlimDX June 2010에서는 기존에 존재하던 API를 채우고 기능적으로 미비하던 부분을 추가하는데 포커스를 맞추고 있습니다. 대부분의 DirectWrite를 구현한 것에 추가로 Direct3D 11 기능에 대해 완벽하게 지원한다는 것을 확인했으며, 공용 셰이더와 이펙트 기능을 D3DCompiler 네임스페이스로 재정리했습니다. 개선된 interop 기능에 대한 시범케이스로 몇가지 새로운 샘플이 추가되었고, VS 2010 지원과 더불어 .NET 4.0 빌도 추가되었습니다. 이러한 추가사항들 중 가장 중요한 것은, 일반적인 배열의 버그가 수정되어 SlimDX 라이브러리의 안정성이 증가되었다는 것입니다.

SlimDX는 지금까지 거의 2년간 베타상태였습니다. 첫 릴리즈때부터, 팀은 변경사항을 최소한으로 유지하기 위해 노력해왔습니다. 이러한 호환성을 유지하기 위해, 수많은 희망요구사항의 적용은 뒤로 미뤄졌습니다. 몇달 동안 SlimDX팀은 "SlimDX 2.0" 버전에 대한 초기 디자인 작업과 계획을 해왔으며, 이는 라이브러리 핵심 디자인에 파격적인 변화와 개선을 가져올 것입니다. 이 "2.0" 버전은 현재 2010 후반 출시를 목표로 하며, June 2010은 마지막 "1.x"가 될 것입니다.

전체 변경 사항

일반
Visual Studio 2010을 사용한 .NET 4.0 빌드 추가
컴파일 에러에 대한 예외 발생을 생기지 않도록 하는 옵션 추가. Configuration.ThrowOnShaderCompileError 참조.
x64 어플리케이션을 PIX에서 실행할 수 있도록 해주는 PIXPlug 툴 추가

샘플
10.1, 10, 9Ex와 WPF간의 interop을 보여주는 WPF D3D10 예제 추가.

수학
쿼터니온 곱셈에 대한 변경 복구. 전에 XNA 방식으로 업데이트했었으나 이는 D3DX와의 호환성을 해칩니다.

D3DCompiler
공용 셰이더와 이펙트 플래그와 인터페이스를 새로운 네임스페이스로 수정했습니다.
실행시 셰이더를 넘기지않아도 되도록 컴파일러 메소드에 오버로드를 추가했습니다.
Compile(Byte[], String, ShaderFlags, EffectFlags) 메소드를 D3DX의 D3DCompiler를 사용하도록 변경했습니다.
ShaderFlags의 빠진 enum을 추가했습니다.
CompileFromFile(String, String, ShaderFlags, EffectFlags) 메소드를 파일에서 직접 읽어 D3DCompiler를 사용하도록 변경했습니다. 이로 인해 유니코드 문제가 해결되었습니다.
Preprocess(Byte[]), Disassemble(), Strip(StripFlags)을 ShaderBytecode에 추가했습니다.
셰이더 리플렉션 API를 추가했습니다.
전체 하부시스템에 대한 문서화를 했습니다.

Direct3D 9
텍스쳐 생성에 대한 공유 핸들 인자를 참조 인자가 되도록 변경
텍스쳐 공유 핸들 인자를 out에서 ref로 변경
디스플레이 모드 인자를 적절하게 초기화하지 않던 9Ex 메소드를 수정
부울 결과를 가지는 GetValue(EffectHandle)에 대한 특별한 경우 추가
AvailableTextureMemory가 Int32대신 Int64를 리턴하도록 변경
Device.Set*ShaderConstant를 오버로드해서 패스로 넘겨지는 아이템의 갯수를 바로 계산하도록 수정
이제 버텍스 선언에서 입력 배열의 끝에 VertexDeclarationEnd가 필요하지 않도록 수정
소프트웨어 렌더러를 지원하기 위한 RegisterSoftwareDevice(IntPtr) 추가

Direct3D 9Ex
D3D9에서 빠졌던 나열 추가
Windows 7 FlipEx 기능에 대한 기능 추가

Direct3D 10
텍스쳐의 ToStream 함수에서 스트림의 사이즈 체크 제거
InputLayout에 셰이더 바이트코드를 받는 생성자 추가
ComputeNormalMap(Texture2D, Texture2D, NormalMapFlags, Channel, Single) 추가.
FromMemory(Device, Byte[])와 FromStream(Device, Stream, Int32) 추가.
LoadTextureFromTexture(Resource, Resource, TextureLoadInformation)와 FilterTexture(Resource, Int32, FilterFlags) 추가.
리소스에서 DXGI 서페이스를 받을 수 있도록 AsSurface() 추가.
빠진 WARP 디바이스 타입 추가
셰이더 컴파일에 null 진입점이 가능하도록 수정
ShaderSignature Get*Signature 메소드 수정.
GetHashCode()의 충돌 버그 수정.
Set(Color4)에 색 입력을 받도록 오버로드 추가.
빠져있던 OpenSharedResource(IntPtr) 메소드를 추가.

Direct3D 11
텍스쳐의 ToStream 함수에서 스트림의 사이즈 체크 제거
InputLayout에 셰이더 바이트코드를 받는 생성자 추가
...

Windows
Run(MainLoop)로 적절한 Application.Run 오버로드에 접근할 수 있도록 몇가지 오버로드를 추가.
시스템 모니터에 대한 정보를 처리하기 위한 DisplayMonitor 클래스 추가

DXGI
Usage 나열에서 빠진 멤버 추가
DXGI 1.1 인터페이스 추가

DirectWrite
몇가지 빠진 인터페이스 추가

RawInput
마우스 휠 변경값에 대한 자료형 수정

XAPO
하부시스템에 대한 구현 완료

XACT3
하부시스템 추가

XAudio2
WaveStream에서 기존 스트림에서 데이터를 읽어들일때 노이즈가 발생하던 문제 수정
Read(Byte[], Int32, Int32)에서 오프셋 인자가 쓰이지 않던 버그 수정
OnVoiceProcessingPassStart(Int32)에서 이벤트 핸들러가 호출될때만 할당을 실행하도록 변경

0 개의 댓글:

댓글 쓰기