Procedura: convertire applicazioni desktop Direct3D

Aggiornamento: novembre 2007

È possibile modificare un'applicazione Direct3D gestita esistente, sviluppata per un computer desktop, ed eseguirla su un dispositivo portatile. Le modifiche devono essere apportare nelle aree seguenti:

  • Riferimenti a componenti e spazi dei nomi.

  • Modifiche al costruttore Device e ai costruttori di altri oggetti.

  • Rimozione di funzionalità non supportate.

  • Ottimizzazioni di risorse. Per informazioni sullo sviluppo di applicazioni Direct3D mobili in grado di utilizzare in modo efficiente risorse vincolate, vedereGestione delle risorse dei dispositivi.

Nota:

Le applicazioni Direct3D Mobile gestito richiedono il software Windows Mobile versione 5.0 per Pocket PC e Smartphone. Per informazioni sul software Windows Mobile e sugli SDK, vedere Risorse esterne per .NET Compact Framework.

Per convertire un'applicazione desktop Direct3D

  1. In Microsoft Visual Studio 2005, creare un'applicazione per Smart Device utilizzando un modello destinato al software Microsoft Windows Mobile 5.0 per Pocket PC o Windows Mobile 5.0 per Smartphone.

  2. Aggiungere al progetto un riferimento al componente Microsoft.WindowsMobile.DirectX.

  3. A seconda del linguaggio di programmazione aggiungere un'istruzione Imports o Using per questi spazi dei nomi:

  4. Copiare il codice dall'applicazione desktop e modificarlo a seconda delle esigenze.

Per modificare i costruttori

  1. La costruzione dell'oggetto Device richiede diversi parametri in un'applicazione per computer portatili, oltre alle seguenti modifiche:

  2. Utilizzare un pool di memoria supportato sul dispositivo. I costruttori TextureLoader e Mesh controllano i bit di capacità per assicurare che gli oggetti vengano creati in un pool di memoria esistente, mentre tutti gli altri costruttori non eseguono questa operazione. Per informazioni sui bit di capacità appropriati per assicurare che il pool di memoria sia utilizzabile sul dispositivo, vedere Gestione delle risorse dei dispositivi.

Per rimuovere funzionalità non supportate

  1. Rimuovere i membri inesistenti in .NET Compact Framework, ad esempio i membri presenti solo nella versione per desktop dell'enumerazione VertexFormats.

  2. Rimuovere le chiamate ai metodi Mesh.Load. Nelle applicazioni per Direct3D Mobile gestite non è incluso un caricatore per i file in formato X. Nell'esempio Direct3D Mobile Meshes viene dimostrato come caricare mesh utilizzando un formato di file md3dm personalizzato. Viene inoltre fornito codice per la conversione di file X in file md3dm e per il relativo caricamento. Il formato di file md3dm non fa parte di .NET Compact Framework, ma viene utilizzato come esempio per dimostrare come caricare una mesh, considerato che i file in formato X non sono supportati.

  3. Rimuovere pixel e vertex shader.

  4. Verificare il supporto per l'intensità del colore. È possibile che, a causa di restrizioni di memoria limitate, alcuni driver di dispositivi portatili non siano in grado di supportare intensità del colore a 65.536 colori per risoluzione dello schermo o per texture. Assicurarsi che i driver supportino i requisiti di intensità del colore oppure apportare le modifiche necessarie.

  5. Rimuovere il codice che fa riferimento ai seguenti tipi per desktop Direct3D non supportati:

    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

Vedere anche

Altre risorse

Programmazione per Mobile Direct3D in .NET Compact Framework