2015-04-16 16:55:32 +00:00
|
|
|
#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)
|
|
|
|
{
|
2015-08-07 20:17:33 +00:00
|
|
|
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;
|
|
|
|
}
|
2015-04-16 16:55:32 +00:00
|
|
|
}
|
|
|
|
|
2015-07-15 16:07:47 +00:00
|
|
|
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];
|
|
|
|
}
|
2015-04-16 16:55:32 +00:00
|
|
|
void uploadImageData();
|
|
|
|
|
|
|
|
int getTextureId()
|
|
|
|
{
|
|
|
|
return m_textureId;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif //GRAPHING_TEXTURE_H
|
|
|
|
|