Cómo: Convertir aplicaciones Direct3D de escritorio
Actualización: noviembre 2007
Puede modificar una aplicación Direct3D administrada existente desarrollada para un equipo de escritorio con el fin de ejecutarse en un dispositivo móvil. Los cambios necesarios aparecen en las áreas siguientes:
Referencias a los componentes y espacios de nombres.
Cambios en el constructor de Device y en los constructores de otros objetos.
Eliminación de funcionalidad no compatible.
Optimizaciones de recursos. Para obtener información sobre cómo desarrollar eficazmente aplicaciones Direct3D móviles que utilicen recursos restringidos, vea Administrar recursos de dispositivos.
Nota: |
---|
Las aplicaciones móviles Direct3D administradas requieren el software de Windows Mobile versión 5.0 para dispositivos Pocket PC y Smartphone. Vea Recursos externos de .NET Compact Framework para obtener información sobre el software de Windows Mobile y los SDK. |
Para convertir una aplicación Direct3D de escritorio
En Microsoft Visual Studio 2005, cree una aplicación de Smart Device mediante una plantilla cuyo destino sea el software de Microsoft Windows Mobile versión 5.0 para Pocket PC o Windows Mobile versión 5.0 para Smartphone.
Agregue una referencia al componente Microsoft.WindowsMobile.DirectX a su proyecto.
Dependiendo del lenguaje de programación, agregue una instrucción Imports o Using para estos espacios de nombres:
Copie el código de la aplicación de escritorio y efectúe las modificaciones necesarias.
Para modificar los constructores
Al construir el objeto Device, se requieren parámetros diferentes en una aplicación móvil y los siguientes cambios:
Hardware no es un valor de DeviceType compatible. Cámbielo a Default.
SoftwareVertexProcessing no es un valor de CreateFlags compatible. Cámbielo a None.
Utilice un bloque de memoria que sea compatible con el dispositivo. Los constructores TextureLoader y Mesh comprueban los bits de capacidad para asegurarse de que se crean los objetos en un bloque de memoria existente, pero el resto de los constructores no. Para obtener información sobre los bits de capacidad adecuados con el fin de garantizar que se puede utilizar un bloque de memoria del dispositivo, vea Administrar recursos de dispositivos.
Para quitar la funcionalidad no compatible
Quite los miembros no existentes en .NET Compact Framework, como los miembros sólo de la versión de escritorio de la enumeración VertexFormats.
Quite las llamadas a los métodos Mesh.Load. Direct3D Mobile administrado no incluye ningún cargador para los archivos .X. En el Ejemplo Direct3D Mobile Meshes se muestra cómo se cargan las mallas utilizando un formato de archivo .md3dm personalizado y se incluye código que convierte los archivos .X en archivos .md3dm y, a continuación, los carga. Tenga en cuenta que el formato de archivo .md3dm no forma parte de .NET Compact Framework, sino que es un ejemplo de cómo cargar una malla puesto que no se admite la carga de archivos .X.
Quite los sombreadores de píxeles y vértices
Asegúrese de que existe compatibilidad de profundidad de color. Algunos controladores de dispositivos móviles no pueden proporcionar las profundidades de color de alta densidad para la resolución de pantalla o texturas debido a las restricciones de memoria. Asegúrese de que los controladores admiten los requisitos de profundidad de color o efectúe los cambios necesarios.
Quite el código que haga referencia a los siguientes tipos de escritorio de Direct3D no compatibles:
AllocateHierarchy
AnimationOutput
AnimationOutputFlags
AnimationRootFrame
AnimationSet
AttributeWeights
BandwidthTimings
BasisType
BoneCombination
BoneInfluences
Box
CacheUtilization
CallbackData
CallbackSearchFlags
CannotAttributeSortException
CannotModifyIndexBufferException
Channel
CleanType
ClipPlane
ClipPlanes
ColorOperator
CompressedAnimationSet
CompressionFlags
CompressionQuality
ConflictingRenderStateException
ConflictingTextureFilterException
ConflictingTexturePaletteException
ConstantDescription
ConstantTable
ConstantTableDescription
CubeMapFace
CubeTexture
CubeTextureRequirements
CubeMapFace
CubeTexture
CubeTextureRequirements
DeclarationMethod
DeclarationType
DeclarationTypeCaps
DeclarationUsage
DegenerateItems
DegreeType
DeviceInformation
Direct3DXException
DisplacementMap
DisplacementParameter
DriverCaps
DuplicateNamedFragmentException
Effect
EffectCompiler
EffectDefault
EffectDefaultType
EffectDescription
EffectHandle
EffectInstance
EffectPool
EffectStateManager
EventDescription
EventType
ExtendedMaterial
Fill2DTextureCallback
Fill3DTextureCallback
FormatList
FragmentDescription
FragmentLinker
Frame
FunctionDescription
FX
GammaRamp
GlyphMetricsFloat
GpuSimulatorOption
HandleAnimationCallback
ImageFileFormat
ImageInformation
Include
IncludeType
InterfaceGuid
InterfaceTimings
IntersectInformation
InvalidDataException
InvalidMeshException
IssueFlags
KeyCallback
KeyFramedAnimationSet
KeyQuaternion
KeyVector3
Line
LinePattern
LoadedMeshHasNoDataException
LoadUserData
LockedBox
Macro
MeshContainer
MeshData
MyD3DXAllocateHierarchy
MyD3DXAnimationCallback
MyD3DXFrame
MyD3DXIncludeClass
MyD3DXLoadUserData
MyD3DXMeshContainer
MyD3DXSaveUserData
NormalMap
OutOfVideoMemoryException
ParameterClass
ParameterDescription
ParameterFlags
ParameterType
PassDescription
PatchEdge
PatchInformation
PatchMesh
PatchType
PipelineTimings
PixelShader
PixelShaderCaps
PlaybackType
Present
PropertyDescription
PrtBuffer
PrtCompressedBuffer
PrtEngine
PrtEngineCallback
PrtSplitMeshClusterData
PrtSplitMeshVertexData
Query
QueryType
RasterStatus
RectanglePatchInformation
RegisterSet
RenderStates
RenderTargetsMax
RenderToEnvironmentDescription
RenderToEnvironmentMap
RenderToSurface
RenderToSurfaceDescription
ResourceManager
ResourceStats
SamplerStageStates
SamplerStateManager
SamplerStateManagerCollection
SaveUserData
ScaleRotateTranslate
Semantic
ShaderConstantInformation
ShaderConstantTable
ShaderDebugInformation
ShaderFileInformation
ShaderFlags
ShaderInstructionInformation
ShaderLoader
ShaderStructMemberInformation
ShaderTypeInformation
ShaderVariableInformation
ShaderWriteInformation
SimplificationMesh
SkinInformation
SkinMesh
SkinningNotSupportedException
SphericalHarmonicMaterial
SphericalHarmonics
StageTimings
StateBlock
StateBlockType
SurfaceLoader
TextureGutterHelper
TextureShader
TextureStageStates
TooManyInfluencesException
TooManyOperationsException
TrackDescription
TransitionType
TrianglePatchInformation
UnsupportedAlphaArgumentException
UnsupportedAlphaOperationException
UnsupportedColorArgumentException
UnsupportedColorOperationException
UnsupportedFactorValueException
UnsupportedTextureFilterException
VertexCache
VertexDeclaration
VertexElement
VertexFormatCaps
VertexShader
VertexShaderCaps
VertexStats
Volume
VolumeDescription
VolumeLoader
VolumeTexture
VolumeTextureRequirements
WasStillDrawingException
WeldEpsilons
WeldEpsilonsFlags
Wrap
WrongTextureFormatException
XFile
XFileData
XFileErrorCodes
XFileFormat
XFileGuid
XFileManager
XFileSaveData