Share via


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

  1. 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.

  2. Agregue una referencia al componente Microsoft.WindowsMobile.DirectX a su proyecto.

  3. Dependiendo del lenguaje de programación, agregue una instrucción Imports o Using para estos espacios de nombres:

  4. Copie el código de la aplicación de escritorio y efectúe las modificaciones necesarias.

Para modificar los constructores

  1. Al construir el objeto Device, se requieren parámetros diferentes en una aplicación móvil y los siguientes cambios:

  2. 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

  1. 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.

  2. 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.

  3. Quite los sombreadores de píxeles y vértices

  4. 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.

  5. 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

Vea también

Otros recursos

Programar Mobile Direct3D en .NET Compact Framework