Comment : convertir des applications Direct3D bureautiques
Mise à jour : novembre 2007
Vous pouvez modifier une application Direct3D managée existante développée pour un ordinateur de bureau afin qu'elle s'exécute sur un appareil mobile. Les modifications que vous devez apporter se situent dans les domaines suivants :
Références aux composants et espaces de noms.
Modifications au constructeur Device et aux constructeurs d'autres objets.
Suppression de fonctionnalités non prises en charge.
Optimisations des ressources. Pour plus d'informations sur le développement des applications Direct3D mobiles qui utilisent des ressources limitées de façon efficace, consultez Gestion des ressources des périphériques.
Remarque : |
---|
Les applications Direct3D mobiles managées requièrent le logiciel Windows Mobile version 5.0 pour les appareils de type Pocket PC et Smartphone. Consultez Ressources externes pour le .NET Compact Framework pour plus d'informations sur le logiciel Windows Mobile et les Kits de développement logiciel. |
Pour convertir une application Direct3D de bureau
Dans Microsoft Visual Studio 2005, créez une application Smart Device à l'aide d'un modèle qui cible le logiciel Microsoft Windows Mobile version 5.0 pour le logiciel Pocket PC ou Windows Mobile version 5.0 pour Smartphone.
Ajoutez une référence au composant Microsoft.WindowsMobile.DirectX à votre projet.
Selon votre langage de programmation, ajoutez une instruction Imports ou Using pour ces espaces de noms :
Copiez le code de votre application bureautique et modifiez-le si nécessaire.
Pour modifier les constructeurs
La construction de l'objet Device requiert des paramètres différents dans une application mobile et nécessite les modifications suivantes :
Hardware n'est pas une valeur DeviceType prise en charge. Remplacez-la par Default.
SoftwareVertexProcessing n'est pas une valeur CreateFlags prise en charge. Remplacez-la par None.
Utilisez un pool de mémoires qui est pris en charge sur l'appareil. Les constructeurs TextureLoader et Mesh vérifient les bits de fonction afin de garantir que les objets sont créés dans un pool de mémoires qui existe, ce qui n'est pas le cas de tous les autres constructeurs. Pour plus d'informations sur les bits de fonction appropriés permettant de garantir qu'un pool de mémoires peut être utilisé sur l'appareil, consultez Gestion des ressources des périphériques.
Pour supprimer les fonctionnalités non prises en charge
Supprimez les membres qui n'existent pas dans le .NET Compact Framework, tel que ceux qui ne figurent que dans la version pour ordinateur de bureau de l'énumération VertexFormats.
Supprimez les appels aux méthodes Mesh.Load. Managed Direct3D Mobile n'inclut pas de chargeur pour les fichiers .X. L'exemple Direct3D Mobile Meshes montre comment charger des maillages à l'aide d'un format de fichier .md3dm personnalisé et contient un code qui convertit des fichiers .X en fichiers .md3dm avant de les charger. Notez que le format de fichier .md3dm n'est pas un composant du .NET Compact Framework, mais un exemple de chargement d'un maillage étant donné que le chargement des fichiers .X n'est pas pris en charge.
Supprimez les shaders de vertex et de pixel.
Garantissez la prise en charge de la profondeur des couleurs. Certains pilotes d'appareils mobiles peuvent ne pas offrir des profondeurs de 65536 couleurs pour la résolution d'écran ou les textures en raison de restrictions de mémoire strictes. Vérifiez que les pilotes prennent en charge votre configuration requise en matière de profondeur des couleurs ou apportez des modifications si nécessaire.
Supprimez le code qui fait référence aux types Direct3D de bureau non pris en charge suivants :
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
Voir aussi
Autres ressources
Programmation Direct3D Mobile dans le .NET Compact Framework