方法 : デスクトップ Direct3D アプリケーションを変換する

更新 : 2007 年 11 月

デスクトップ コンピュータ向けに開発された既存のマネージ Direct3D アプリケーションを、モバイル デバイスで実行できるように変更できます。変更する必要があるのは、次の領域です。

  • コンポーネントおよび名前空間への参照。

  • Device のコンストラクタ、および他のオブジェクトのコンストラクタの変更。

  • サポートされていない機能の削除。

  • リソースの最適化。制約のあるリソースを効率的に使用するモバイル Direct3D アプリケーションの開発については、「デバイス リソースの管理」を参照してください。

ms229668.alert_note(ja-jp,VS.90).gifメモ :

マネージ Direct3D モバイル アプリケーションでは、Windows Mobile Version 5.0 Software for Pocket PC と Windows Mobile Version 5.0 Software for Smartphone が必要です。Windows Mobile ソフトウェアおよび SDK については、「.NET Compact Framework の外部資料」を参照してください。

デスクトップ Direct3D アプリケーションを変換するには

  1. Microsoft Visual Studio 2005 でテンプレートを使用して、Microsoft Windows Mobile Version 5.0 Software for Pocket PC または Windows Mobile Version 5.0 Software for Smartphone を対象としたスマート デバイス アプリケーションを作成します。

  2. プロジェクトに Microsoft.WindowsMobile.DirectX コンポーネントへの参照を追加します。

  3. 使用するプログラミング言語によっては、名前空間に Imports ステートメントまたは Using ステートメントを追加します。

  4. デスクトップ アプリケーションからコードをコピーし、必要に応じて変更します。

コンストラクタを変更するには

  1. Device オブジェクトの構築には、モバイル アプリケーションとは異なるパラメータと、次の変更が必要です。

    • Hardware は、サポートされている DeviceType 値ではありません。これを Default に変更します。

    • SoftwareVertexProcessing は、サポートされている CreateFlags 値ではありません。これを None に変更します。

  2. デバイスでサポートされているメモリ プールを使用します。TextureLoader コンストラクタおよび Mesh コンストラクタは、オブジェクトが既存のメモリ プール内で作成されることを保証するために機能ビットをチェックしますが、その他すべてのコンストラクタはチェックしません。メモリ プールをデバイスで利用できることを保証するための機能ビットについては、「デバイス リソースの管理」を参照してください。

サポートされていない機能を削除するには

  1. たとえば、デスクトップ バージョンの VertexFormats 列挙体にだけあるメンバのように、.NET Compact Framework に存在しないメンバを削除します。

  2. Mesh.Load メソッドに対する呼び出しを削除します。マネージ Direct3D Mobile には、.X ファイルのローダーが含まれていません。Direct3D モバイルのメッシュのサンプルは、カスタム .md3dm ファイル形式を使用してメッシュを読み込む方法を示し、.X ファイルを .md3dm ファイルに変換してから読み込むコードを含んでいます。.md3dm ファイル形式は、.NET Compact Framework のコンポーネントではなく、読み込んでいる .X ファイルがサポートされていないときにメッシュを読み込む方法の例であることに注意してください。

  3. ピクセルおよび頂点シェーダを削除します。

  4. 色深度のサポートを確認します。モバイル デバイス ドライバの一部は、メモリの制約が厳しいために、画面解像度やテクスチャによっては高い色深度に対応していないことがあります。必要な色深度要件をドライバがサポートしているかどうかを確認し、必要に応じて変更を加えます。

  5. 次のサポートされていないデスクトップ Direct3D 型を参照しているコードを削除します。

    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

参照

その他の技術情報

.NET Compact Framework での Mobile Direct3D プログラミング