12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #ifndef GRAPHING_TEXTURE_H
- #define GRAPHING_TEXTURE_H
- #include "LinearMath/btAlignedObjectArray.h"
- struct GraphingTexture
- {
- int m_textureId;
- //assume rgba (8 bit per component, total of 32bit per pixel, for m_width*m_height pixels)
- btAlignedObjectArray<unsigned char> m_imageData;
- int m_width;
- int m_height;
-
- GraphingTexture();
- virtual ~GraphingTexture();
-
- bool create(int texWidth, int texHeight);
- void destroy();
-
- void setPixel(int x, int y, unsigned char red, unsigned char green, unsigned char blue, unsigned char alpha)
- {
- if (y>=0 && y<m_height && x>=0 && x<m_width)
- {
- m_imageData[x*4+y*4*m_width+0] = red;
- m_imageData[x*4+y*4*m_width+1] = green;
- m_imageData[x*4+y*4*m_width+2] = blue;
- m_imageData[x*4+y*4*m_width+3] = alpha;
- }
- }
-
- void getPixel(int x, int y, unsigned char& red, unsigned char& green, unsigned char& blue, unsigned char& alpha)
- {
- red = m_imageData[x*4+y*4*m_width+0];
- green = m_imageData[x*4+y*4*m_width+1];
- blue = m_imageData[x*4+y*4*m_width+2];
- alpha = m_imageData[x*4+y*4*m_width+3];
- }
- void uploadImageData();
-
- int getTextureId()
- {
- return m_textureId;
- }
- };
- #endif //GRAPHING_TEXTURE_H
|