terraintexture.h

来自「x3d_new.rar」· C头文件 代码 · 共 60 行

H
60
字号
#pragma once

#include <vector>
#include <string>
#include <assert.h>

#include <d3d9.h>

#include "Field.h"

struct STextureElementInfo
{
    std::string         m_sFileName;    // 文件名
    int                 m_nPercentage;  // 百分比

    D3DLOCKED_RECT      m_d3dlr;        // 锁定的区域
    LPDIRECT3DTEXTURE9  m_pTexture;     // 纹理指针
    int                 m_nEndHeight;   // 起始高度
};

class CFieldTexturePainter
{
public:
    CFieldTexturePainter(void);
    ~CFieldTexturePainter(void);

    // 地形数据指针
    void SetField(CField* pField){
        m_pField = pField;
    }

    // 设备指针
    void SetDevice(LPDIRECT3DDEVICE9 pDevice){
        m_pDevice = pDevice;
    }
    
    // 尺寸
    void SetSize(int nSize){
        m_nSize = nSize;
    }

    // 添加纹理元素
    bool AddElement(char* sFileName, int nPercentage);

    // 创建纹理
    bool PaintTexture(LPDIRECT3DTEXTURE9* ppTexture);

    // 清除纹理元素
    void ClearElement(void);

public:

private:
    std::vector<STextureElementInfo>    m_TextureElements;  // 纹理元素表
    int                 m_nTotalPercentage; // 用于记录所有纹理总共占有高度比率
    CField*             m_pField;           // 地形数据指针
    LPDIRECT3DDEVICE9   m_pDevice;          // 设备
    int                 m_nSize;            // 尺寸
};

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?