⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dx9texture.hpp

📁 用于GPU通用计算的编程语言BrookGPU 0.4
💻 HPP
字号:
// dx9texture.hpp#pragma once#include "dx9base.hpp"namespace brook{    class DX9Texture    {    public:        static DX9Texture* create( GPUContextDX9* inContext, int inWidth, int inHeight, int inComponents );        ~DX9Texture();        int getWidth() { return width; }        int getHeight() { return height; }        void setData( const float* inData, unsigned int inStride, unsigned int inCount,          unsigned int inRank, const unsigned int* inDomainMin, const unsigned int* inDomainMax,          const unsigned int* inExtents, bool inUsesAddressTranslation );        void getData( float* outData, unsigned int inStride, unsigned int inCount,          unsigned int inRank, const unsigned int* inDomainMin, const unsigned int* inDomainMax,          const unsigned int* inExtents, bool inUsesAddressTranslation );        void markCachedDataChanged();        void markShadowDataChanged();        void validateCachedData();        void validateShadowData();        void getPixelAt( int x, int y, float4& outResult );        LPDIRECT3DTEXTURE9 getTextureHandle() {        return textureHandle;        }        LPDIRECT3DSURFACE9 getSurfaceHandle() {        return surfaceHandle;        }    private:        DX9Texture( GPUContextDX9* inContext, int inWidth, int inHeight, int inComponents );        bool initialize();        void flushCachedToShadow();        void flushShadowToCached();        void getShadowData( void* outData, unsigned int inStride, unsigned int inCount,          unsigned int inRank, const unsigned int* inDomainMin, const unsigned int* inDomainMax,          const unsigned int* inExtents, bool inUsesAddressTranslation );        void setShadowData( const void* inData, unsigned int inStride, unsigned int inCount,          unsigned int inRank, const unsigned int* inDomainMin, const unsigned int* inDomainMax,          const unsigned int* inExtents, bool inUsesAddressTranslation );        void findRectForCopy( unsigned int inRank, const unsigned int* inDomainMin, const unsigned int* inDomainMax,          const unsigned int* inExtents, bool inUsesAddressTranslation, RECT& outRect, bool& outFullBuffer );        void copyData( void* toBuffer, size_t toRowStride, size_t toElementStride,          const void* fromBuffer, size_t fromRowStride, size_t fromElementStride,          size_t columnCount, size_t rowCount, size_t elementSize );        void findRectForCopyAT( unsigned int inRank, const unsigned int* inDomainMin, const unsigned int* inDomainMax,          const unsigned int* inExtents, bool inUsesAddressTranslation, RECT& outRect, bool& outFullBuffer,          size_t inWidth, size_t inHeight, size_t& outBaseX, size_t& outBaseY );        void copyAllDataAT( void* toBuffer, size_t toRowStride, size_t toElementStride,          const void* fromBuffer, size_t fromRowStride, size_t fromElementStride,          size_t columnCount, size_t rowCount, size_t elementSize, size_t inRank, const unsigned int* inExtents );        void getDataAT( void* streamData, unsigned int streamRank,          const unsigned int* streamDomainMin, const unsigned int* streamDomainMax,          const unsigned int* streamExtents, size_t streamElementStride,          const void* textureData, size_t textureLineStride, size_t textureWidth, size_t textureHeight,          size_t textureElementStride, size_t textureBaseX, size_t textureBaseY );        void setDataAT( const void* streamData, unsigned int streamRank,          const unsigned int* streamDomainMin, const unsigned int* streamDomainMax,          const unsigned int* streamExtents, size_t streamElementStride,          void* textureData, size_t textureLineStride, size_t textureWidth, size_t textureHeight,          size_t textureElementStride, size_t textureBaseX, size_t textureBaseY );        GPUContextDX9* _context;        LPDIRECT3DDEVICE9 device;        int width;        int height;        int components;        int internalComponents;        LPDIRECT3DTEXTURE9 textureHandle;        LPDIRECT3DSURFACE9 surfaceHandle;        LPDIRECT3DSURFACE9 shadowSurface;        enum DirtyFlag {            kShadowDataDirty = 0x01,            kCachedDataDirty = 0x02        };        int dirtyFlags;    };}

⌨️ 快捷键说明

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