#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 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