# HG changeset patch # User sl # Date 1401257187 -7200 # Node ID b1b049e28772fd16b2476589d2d3b77a1ca24efc # Parent 62a1d3631dcb3489c3bd9cac5486b334b9137312 Basic font rendering now working nicely. diff -r 62a1d3631dcb -r b1b049e28772 MiniDisplay/BitArray.cpp --- a/MiniDisplay/BitArray.cpp Tue May 27 22:14:29 2014 +0200 +++ b/MiniDisplay/BitArray.cpp Wed May 28 08:06:27 2014 +0200 @@ -124,7 +124,9 @@ * Returned : None ***************************************************************************/ BitArray::BitArray(const int numBits): - m_NumBits(numBits) + m_NumBits(numBits), + m_Array(NULL), + m_OwnsBuffer(true) { m_SizeInBytes = BITS_TO_CHARS(numBits); @@ -146,10 +148,12 @@ * Effects : Allocates vectory for array bits * Returned : None ***************************************************************************/ -BitArray::BitArray(unsigned char *array, const int numBits): +BitArray::BitArray(unsigned char *array, const int numBits,bool aOwnsBuffer): m_NumBits(numBits), - m_Array(array) + m_Array(array), + m_OwnsBuffer(aOwnsBuffer) { + } /*************************************************************************** @@ -162,7 +166,11 @@ ***************************************************************************/ BitArray::~BitArray(void) { - delete[] m_Array; + if (m_OwnsBuffer) + { + delete[] m_Array; + m_Array = NULL; + } } /*************************************************************************** diff -r 62a1d3631dcb -r b1b049e28772 MiniDisplay/BitArray.h --- a/MiniDisplay/BitArray.h Tue May 27 22:14:29 2014 +0200 +++ b/MiniDisplay/BitArray.h Wed May 28 08:06:27 2014 +0200 @@ -95,14 +95,14 @@ { public: BitArray(const int numBits); - BitArray(unsigned char *array, const int numBits); + BitArray(unsigned char *array, const int numBits, bool aOwnsBuffer); virtual ~BitArray(void); void Dump(std::ostream &outStream); - const unsigned int SizeInBits() { return m_NumBits; }; - const unsigned int SizeInBytes() { return m_SizeInBytes; }; + const unsigned int SizeInBits() { return m_NumBits; } + const unsigned int SizeInBytes() { return m_SizeInBytes; } /* set/clear functions */ void SetAll(void); @@ -155,6 +155,7 @@ unsigned int m_NumBits; /* number of bits in the array */ unsigned int m_SizeInBytes; unsigned char *m_Array; /* vector of characters */ + bool m_OwnsBuffer; }; #endif /* ndef BIT_ARRAY_H */ diff -r 62a1d3631dcb -r b1b049e28772 MiniDisplay/FutabaVfd.cpp --- a/MiniDisplay/FutabaVfd.cpp Tue May 27 22:14:29 2014 +0200 +++ b/MiniDisplay/FutabaVfd.cpp Wed May 28 08:06:27 2014 +0200 @@ -131,7 +131,7 @@ /** */ -void GP1212A01A::BitBlit(BitArray& aBitmap, int aSrcWidth, int aSrcHeight, int aTargetX, int aTargetY) const +void GP1212A01A::BitBlit(const BitArray& aBitmap, int aSrcWidth, int aSrcHeight, int aTargetX, int aTargetY) const { //TODO: amend loop values so that we don't keep on looping past our frame buffer dimensions. for (int i=0;i