Migrate to TouchGFX 4.22.0

This commit is contained in:
Jasper Blanckenburg 2023-07-24 18:54:12 +02:00
parent 61729b302c
commit 90b55ffa1c
1032 changed files with 1754 additions and 111124 deletions

4
.gitignore vendored
View File

@ -4,3 +4,7 @@
.clangd .clangd
compile_commands.json compile_commands.json
TouchGFX/build TouchGFX/build
/Middlewares/ST/touchgfx_backup/
/TouchGFX/screenshots
/TouchGFX/*_backup.touchgfx
/steering-wheel.ioc_bkp

View File

@ -21,12 +21,12 @@
/* Includes ------------------------------------------------------------------*/ /* Includes ------------------------------------------------------------------*/
#include "app_azure_rtos.h" #include "app_azure_rtos.h"
#include "leds.h"
#include "stm32h7xx.h" #include "stm32h7xx.h"
/* Private includes ----------------------------------------------------------*/ /* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */ /* USER CODE BEGIN Includes */
#include "app.h" #include "app.h"
#include "leds.h"
#include "main.h" #include "main.h"
#include "ui.h" #include "ui.h"
#include "vehicle.h" #include "vehicle.h"

View File

@ -24,7 +24,7 @@
/* Defines ------------------------------------------------------------------*/ /* Defines ------------------------------------------------------------------*/
/* STMicroelectronics.X-CUBE-AZRTOS-H7.3.0.0 */ /* STMicroelectronics.X-CUBE-AZRTOS-H7.3.0.0 */
#define THREADX_ENABLED #define THREADX_ENABLED
/* STMicroelectronics.X-CUBE-TOUCHGFX.4.21.2 */ /* STMicroelectronics.X-CUBE-TOUCHGFX.4.22.0 */
#define TOUCHGFX_APP #define TOUCHGFX_APP
#endif /* __RTE_COMPONENTS_H__ */ #endif /* __RTE_COMPONENTS_H__ */

View File

@ -1,5 +1,5 @@
########################################################################################################################## ##########################################################################################################################
# File automatically-generated by tool: [projectgenerator] version: [3.19.2] date: [Fri Mar 24 19:11:35 CET 2023] # File automatically-generated by tool: [projectgenerator] version: [4.1.0] date: [Mon Jul 24 18:47:29 CEST 2023]
########################################################################################################################## ##########################################################################################################################
# ------------------------------------------------ # ------------------------------------------------

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.
@ -284,6 +284,32 @@ public:
*/ */
void enableTextureMapperA4_NearestNeighbor(); void enableTextureMapperA4_NearestNeighbor();
/**
* Enables all the decompressors available for L8 images (L4, RLE and LZW9).
* This allows drawing L4, RLE and LZW9 compressed L8 images.
*
* @see enableDecompressorL8_L4, enableDecompressorL8_RLE, enableDecompressorL8_LZW9
*/
void enableDecompressorL8_All();
/**
* Enables the decompressor for L8 images compressed with the L4 algorithm.
* This allows drawing L4 compressed L8 images.
*/
void enableDecompressorL8_L4();
/**
* Enables the decompressor for L8 images compressed with the RLE algorithm.
* This allows drawing RLE compressed L8 images.
*/
void enableDecompressorL8_RLE();
/**
* Enables the decompressor for L8 images compressed with the LZW9 algorithm.
* This allows drawing LZW9 compressed L8 images.
*/
void enableDecompressorL8_LZW9();
protected: protected:
virtual DrawTextureMapScanLineBase* getTextureMapperDrawScanLine(const TextureSurface& texture, RenderingVariant renderVariant, uint8_t alpha); virtual DrawTextureMapScanLineBase* getTextureMapperDrawScanLine(const TextureSurface& texture, RenderingVariant renderVariant, uint8_t alpha);
@ -361,7 +387,7 @@ protected:
* @param alpha The alpha value to use for blending applied to the whole image (255 = * @param alpha The alpha value to use for blending applied to the whole image (255 =
* solid, no blending) * solid, no blending)
*/ */
static void blitCopyL8(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha); void blitCopyL8(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
/** /**
* Blits a 2D indexed 8-bit source to the framebuffer performing alpha-blending per * Blits a 2D indexed 8-bit source to the framebuffer performing alpha-blending per
@ -837,6 +863,61 @@ private:
FORCE_INLINE_FUNCTION void writePixel(uint16_t* const destBits, const uint16_t* const textureBits, const uint32_t offset, const int16_t bitmapStride, const uint8_t UFrac, const uint8_t VFrac) const; FORCE_INLINE_FUNCTION void writePixel(uint16_t* const destBits, const uint16_t* const textureBits, const uint32_t offset, const int16_t bitmapStride, const uint8_t UFrac, const uint8_t VFrac) const;
void writePixelOnEdge(uint16_t* const destBits, const uint16_t* const textureBits, const int16_t bitmapStride, const int16_t bitmapWidth, const int16_t bitmapHeight, const int UInt, const int VInt, const uint8_t UFrac, const uint8_t VFrac) const; void writePixelOnEdge(uint16_t* const destBits, const uint16_t* const textureBits, const int16_t bitmapStride, const int16_t bitmapWidth, const int16_t bitmapHeight, const int UInt, const int VInt, const uint8_t UFrac, const uint8_t VFrac) const;
}; };
class DecompressorL8Base
{
public:
virtual ~DecompressorL8Base()
{
}
virtual void blitCopyRGB565(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha) = 0;
virtual void blitCopyARGB8888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha) = 0;
virtual void blitCopyRGB888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha) = 0;
};
class DecompressorL8_L4 : public DecompressorL8Base
{
public:
virtual void blitCopyRGB565(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
virtual void blitCopyARGB8888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
virtual void blitCopyRGB888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
private:
uint16_t blendPixelRGB565(uint16_t imagePixel, uint16_t fbPixel, int alpha, int ialpha) const;
uint16_t blendPixelARGB8888(uint32_t imagePixel, uint16_t fbPixel, int alpha, uint8_t alphapix) const;
uint16_t blendPixelRGB888(const uint8_t* imagePixel, uint16_t fbPixel, uint8_t alpha, uint8_t ialpha) const;
};
class DecompressorL8_RLE : public DecompressorL8Base
{
public:
virtual void blitCopyRGB565(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
virtual void blitCopyARGB8888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
virtual void blitCopyRGB888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
private:
static const uint16_t BLOCK_SIZE = 1024U;
};
class DecompressorL8_LZW9 : public DecompressorL8Base
{
public:
virtual void blitCopyRGB565(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
virtual void blitCopyARGB8888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
virtual void blitCopyRGB888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
private:
static const uint16_t MAX_DICT_SIZE = 512U;
static const uint16_t BLOCK_SIZE = 1024U;
LZW9DictionaryEntry lzw9Dictionary[MAX_DICT_SIZE];
uint8_t entryBuffer[64]; // Having 64byte max entry sizes entails 1 + 2 + ... + 63 + 64 = 2080px size image blocks
};
DecompressorL8Base* decompressorL8_L4;
DecompressorL8Base* decompressorL8_RLE;
DecompressorL8Base* decompressorL8_LZW9;
}; };
} // namespace touchgfx } // namespace touchgfx

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.
@ -289,6 +289,32 @@ public:
*/ */
void enableTextureMapperA4_NearestNeighbor(); void enableTextureMapperA4_NearestNeighbor();
/**
* Enables all the decompressors available for L8 images (L4, RLE and LZW9).
* This allows drawing L4, RLE and LZW9 compressed L8 images.
*
* @see enableDecompressorL8_L4, enableDecompressorL8_RLE, enableDecompressorL8_LZW9
*/
void enableDecompressorL8_All();
/**
* Enables the decompressor for L8 images compressed with the L4 algorithm.
* This allows drawing L4 compressed L8 images.
*/
void enableDecompressorL8_L4();
/**
* Enables the decompressor for L8 images compressed with the RLE algorithm.
* This allows drawing RLE compressed L8 images.
*/
void enableDecompressorL8_RLE();
/**
* Enables the decompressor for L8 images compressed with the LZW9 algorithm.
* This allows drawing LZW9 compressed L8 images.
*/
void enableDecompressorL8_LZW9();
protected: protected:
virtual DrawTextureMapScanLineBase* getTextureMapperDrawScanLine(const TextureSurface& texture, RenderingVariant renderVariant, uint8_t alpha); virtual DrawTextureMapScanLineBase* getTextureMapperDrawScanLine(const TextureSurface& texture, RenderingVariant renderVariant, uint8_t alpha);
@ -812,6 +838,109 @@ private:
FORCE_INLINE_FUNCTION void writePixel(uint16_t* const destBits, const uint16_t* const textureBits, const uint32_t offset, const int16_t bitmapWidth, const uint8_t UFrac, const uint8_t VFrac) const; FORCE_INLINE_FUNCTION void writePixel(uint16_t* const destBits, const uint16_t* const textureBits, const uint32_t offset, const int16_t bitmapWidth, const uint8_t UFrac, const uint8_t VFrac) const;
void writePixelOnEdge(uint16_t* const destBits, const uint16_t* const textureBits, const int16_t bitmapStride, const int16_t bitmapWidth, const int16_t bitmapHeight, const int UInt, const int VInt, const uint8_t UFrac, const uint8_t VFrac) const; void writePixelOnEdge(uint16_t* const destBits, const uint16_t* const textureBits, const int16_t bitmapStride, const int16_t bitmapWidth, const int16_t bitmapHeight, const int UInt, const int VInt, const uint8_t UFrac, const uint8_t VFrac) const;
}; };
class FlashDataProvider
{
public:
FlashDataProvider(FlashDataReader& _flashReader);
void initialize(const uint8_t* _sourceData, uint32_t _maxBytesToRead);
bool addressIsAddressable(const void* address) const;
void increment();
uint8_t getCurrent() const
{
return *currentBytePtr;
}
private:
void readFromFlash();
FlashDataReader& flashReader;
const uint8_t* sourceData;
uint32_t maxBytesToRead;
uint32_t bytesToRead;
const uint8_t* bufferEnd;
const uint8_t* currentBytePtr;
bool isAddressable;
static const uint16_t MAX_BYTES_TO_READ = 64;
};
class DecompressorL8Base
{
public:
virtual ~DecompressorL8Base()
{
}
virtual void blitCopyRGB565(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha) = 0;
virtual void blitCopyARGB8888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha) = 0;
};
class DecompressorL8_L4 : public DecompressorL8Base
{
public:
DecompressorL8_L4(FlashDataReader& _flashReader)
: flashReader(_flashReader)
{
}
virtual void blitCopyRGB565(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
virtual void blitCopyARGB8888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
private:
uint16_t blendPixelRGB565(uint16_t imagePixel, uint16_t fbPixel, int alpha, int ialpha) const;
uint16_t blendPixelARGB8888(uint32_t imagePixel, uint16_t fbPixel, int alpha, uint8_t alphapix) const;
FlashDataReader& flashReader;
};
class DecompressorL8_RLE : public DecompressorL8Base
{
public:
DecompressorL8_RLE(FlashDataReader& _flashReader)
: flashDataProvider(_flashReader)
{
}
virtual void blitCopyRGB565(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
virtual void blitCopyARGB8888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
private:
FlashDataProvider flashDataProvider;
static const uint16_t BLOCK_SIZE = 1024U;
};
class DecompressorL8_LZW9 : public DecompressorL8Base
{
public:
DecompressorL8_LZW9(FlashDataReader& _flashReader)
: flashDataProvider(_flashReader)
{
}
virtual void blitCopyRGB565(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
virtual void blitCopyARGB8888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
private:
FlashDataProvider flashDataProvider;
static const uint16_t MAX_DICT_SIZE = 512U;
static const uint16_t BLOCK_SIZE = 1024U;
struct LZW9DictionaryEntry
{
uint8_t character; // Current character of the entry
uint8_t length; // Remaining length of the entry
uint16_t prefixIndex; // Index to previous character
};
LZW9DictionaryEntry lzw9Dictionary[MAX_DICT_SIZE];
uint8_t entryBuffer[64]; // Having 64byte max entry sizes entails 1 + 2 + ... + 63 + 64 = 2080px size image blocks
};
DecompressorL8Base* decompressorL8_L4;
DecompressorL8Base* decompressorL8_RLE;
DecompressorL8Base* decompressorL8_LZW9;
}; };
} // namespace touchgfx } // namespace touchgfx

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.
@ -263,14 +263,14 @@ private:
uint8_t getNextHalfByte() uint8_t getNextHalfByte()
{ {
assert(data != 0 && "class bwRLEdata not properly initialized");
if (firstHalfByte) // Start of new byte, read data from BW_RLE stream if (firstHalfByte) // Start of new byte, read data from BW_RLE stream
{ {
assert(data);
rleByte = *data++; rleByte = *data++;
} }
uint8_t len = rleByte & 0xF; // Read lower half const uint8_t len = rleByte & 0xF; // Read lower half
rleByte >>= 4; // Shift upper half down to make it ready rleByte >>= 4; // Shift upper half down to make it ready
firstHalfByte = !firstHalfByte; // Toggle 'start of byte' firstHalfByte = !firstHalfByte; // Toggle 'start of byte'
return len; return len;
} }

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.
@ -26,6 +26,8 @@
namespace touchgfx namespace touchgfx
{ {
struct GlyphNode;
/** /**
* This class contains the various low-level drawing routines for drawing bitmaps, texts and * This class contains the various low-level drawing routines for drawing bitmaps, texts and
* rectangles on 16 bits per pixel displays. * rectangles on 16 bits per pixel displays.
@ -213,6 +215,32 @@ public:
*/ */
void enableTextureMapperA4_NearestNeighbor(); void enableTextureMapperA4_NearestNeighbor();
/**
* Enables all the decompressors available for L8 images (L4, RLE and LZW9).
* This allows drawing L4, RLE and LZW9 compressed L8 images.
*
* @see enableDecompressorL8_L4, enableDecompressorL8_RLE, enableDecompressorL8_LZW9
*/
void enableDecompressorL8_All();
/**
* Enables the decompressor for L8 images compressed with the L4 algorithm.
* This allows drawing L4 compressed L8 images.
*/
void enableDecompressorL8_L4();
/**
* Enables the decompressor for L8 images compressed with the RLE algorithm.
* This allows drawing RLE compressed L8 images.
*/
void enableDecompressorL8_RLE();
/**
* Enables the decompressor for L8 images compressed with the LZW9 algorithm.
* This allows drawing LZW9 compressed L8 images.
*/
void enableDecompressorL8_LZW9();
protected: protected:
virtual DrawTextureMapScanLineBase* getTextureMapperDrawScanLine(const TextureSurface& texture, RenderingVariant renderVariant, uint8_t alpha); virtual DrawTextureMapScanLineBase* getTextureMapperDrawScanLine(const TextureSurface& texture, RenderingVariant renderVariant, uint8_t alpha);
@ -278,7 +306,7 @@ protected:
* @param alpha The alpha value to use for blending applied to the whole image (255 = * @param alpha The alpha value to use for blending applied to the whole image (255 =
* solid, no blending) * solid, no blending)
*/ */
static void blitCopyL8(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha); void blitCopyL8(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
/** /**
* Blits a 2D indexed 8-bit source to the framebuffer performing alpha-blending per * Blits a 2D indexed 8-bit source to the framebuffer performing alpha-blending per
@ -580,6 +608,63 @@ private:
FORCE_INLINE_FUNCTION void writePixel(uint8_t* const destBits, const uint16_t* const textureBits, const int16_t bitmapStride, const int UInt, const int VInt, const uint8_t UFrac, const uint8_t VFrac) const; FORCE_INLINE_FUNCTION void writePixel(uint8_t* const destBits, const uint16_t* const textureBits, const int16_t bitmapStride, const int UInt, const int VInt, const uint8_t UFrac, const uint8_t VFrac) const;
void writePixelOnEdge(uint8_t* const destBits, const uint16_t* const textureBits, const int16_t bitmapStride, const int16_t bitmapWidth, const int16_t bitmapHeight, const int UInt, const int VInt, const uint8_t UFrac, const uint8_t VFrac) const; void writePixelOnEdge(uint8_t* const destBits, const uint16_t* const textureBits, const int16_t bitmapStride, const int16_t bitmapWidth, const int16_t bitmapHeight, const int UInt, const int VInt, const uint8_t UFrac, const uint8_t VFrac) const;
}; };
class DecompressorL8Base
{
public:
virtual ~DecompressorL8Base()
{
}
virtual void blitCopyRGB888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha) = 0;
virtual void blitCopyARGB8888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha) = 0;
};
class DecompressorL8_L4 : public DecompressorL8Base
{
public:
virtual void blitCopyRGB888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
virtual void blitCopyARGB8888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
private:
void blendPixelRGB888(const uint8_t* imagePixel, uint8_t* const fbPixel, int alpha) const;
void blendPixelARGB8888(const uint8_t* imagePixel, uint8_t* const fbPixel, int alpha, uint8_t alphapix) const;
};
class DecompressorL8_RLE : public DecompressorL8Base
{
public:
virtual void blitCopyRGB888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
virtual void blitCopyARGB8888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
private:
static const uint16_t BLOCK_SIZE = 1024U;
};
class DecompressorL8_LZW9 : public DecompressorL8Base
{
public:
virtual void blitCopyRGB888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
virtual void blitCopyARGB8888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
private:
static const uint16_t MAX_DICT_SIZE = 512U;
static const uint16_t BLOCK_SIZE = 1024U;
struct LZW9DictionaryEntry
{
uint8_t character; // Current character of the entry
uint8_t length; // Remaining length of the entry
uint16_t prefixIndex; // Index to previous character
};
LZW9DictionaryEntry lzw9Dictionary[MAX_DICT_SIZE];
uint8_t entryBuffer[64]; // Having 64byte max entry sizes entails 1 + 2 + ... + 63 + 64 = 2080px size image blocks
};
DecompressorL8Base* decompressorL8_L4;
DecompressorL8Base* decompressorL8_RLE;
DecompressorL8Base* decompressorL8_LZW9;
}; };
} // namespace touchgfx } // namespace touchgfx

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.
@ -279,6 +279,32 @@ public:
*/ */
void enableTextureMapperA4_NearestNeighbor(); void enableTextureMapperA4_NearestNeighbor();
/**
* Enables all the decompressors available for L8 images (L4, RLE and LZW9).
* This allows drawing L4, RLE and LZW9 compressed L8 images.
*
* @see enableDecompressorL8_L4, enableDecompressorL8_RLE, enableDecompressorL8_LZW9
*/
void enableDecompressorL8_All();
/**
* Enables the decompressor for L8 images compressed with the L4 algorithm.
* This allows drawing L4 compressed L8 images.
*/
void enableDecompressorL8_L4();
/**
* Enables the decompressor for L8 images compressed with the RLE algorithm.
* This allows drawing RLE compressed L8 images.
*/
void enableDecompressorL8_RLE();
/**
* Enables the decompressor for L8 images compressed with the LZW9 algorithm.
* This allows drawing LZW9 compressed L8 images.
*/
void enableDecompressorL8_LZW9();
protected: protected:
virtual DrawTextureMapScanLineBase* getTextureMapperDrawScanLine(const TextureSurface& texture, RenderingVariant renderVariant, uint8_t alpha); virtual DrawTextureMapScanLineBase* getTextureMapperDrawScanLine(const TextureSurface& texture, RenderingVariant renderVariant, uint8_t alpha);
@ -344,7 +370,7 @@ protected:
* @param alpha The alpha value to use for blending applied to the whole image (255 = * @param alpha The alpha value to use for blending applied to the whole image (255 =
* solid, no blending) * solid, no blending)
*/ */
static void blitCopyL8(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha); void blitCopyL8(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
/** /**
* Blits a 2D indexed 8-bit source to the framebuffer performing alpha-blending per * Blits a 2D indexed 8-bit source to the framebuffer performing alpha-blending per
@ -897,6 +923,61 @@ private:
FORCE_INLINE_FUNCTION void writePixel(uint32_t* const destBits, const uint16_t* const textureBits, const int16_t bitmapStride, const int UInt, const int VInt, const uint8_t UFrac, const uint8_t VFrac) const; FORCE_INLINE_FUNCTION void writePixel(uint32_t* const destBits, const uint16_t* const textureBits, const int16_t bitmapStride, const int UInt, const int VInt, const uint8_t UFrac, const uint8_t VFrac) const;
void writePixelOnEdge(uint32_t* const destBits, const uint16_t* const textureBits, const int16_t bitmapStride, const int16_t bitmapWidth, const int16_t bitmapHeight, const int UInt, const int VInt, const uint8_t UFrac, const uint8_t VFrac) const; void writePixelOnEdge(uint32_t* const destBits, const uint16_t* const textureBits, const int16_t bitmapStride, const int16_t bitmapWidth, const int16_t bitmapHeight, const int UInt, const int VInt, const uint8_t UFrac, const uint8_t VFrac) const;
}; };
class DecompressorL8Base
{
public:
virtual ~DecompressorL8Base()
{
}
virtual void blitCopyRGB565(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha) = 0;
virtual void blitCopyRGB888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha) = 0;
virtual void blitCopyARGB8888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha) = 0;
};
class DecompressorL8_L4 : public DecompressorL8Base
{
public:
virtual void blitCopyRGB565(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
virtual void blitCopyRGB888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
virtual void blitCopyARGB8888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
private:
void blendPixelRGB565(const uint16_t imagePixel, uint32_t* fbPixel, const uint8_t alpha) const;
void blendPixelARGB8888(const uint8_t* imagePixel, uint32_t* fbPixel, const uint8_t alpha, const uint8_t alphapix) const;
void blendPixelRGB888(const uint8_t* imagePixel, uint32_t* fbPixel, const uint8_t alpha) const;
};
class DecompressorL8_RLE : public DecompressorL8Base
{
public:
virtual void blitCopyRGB565(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
virtual void blitCopyRGB888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
virtual void blitCopyARGB8888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
private:
static const uint16_t BLOCK_SIZE = 1024U;
};
class DecompressorL8_LZW9 : public DecompressorL8Base
{
public:
virtual void blitCopyRGB565(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
virtual void blitCopyRGB888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
virtual void blitCopyARGB8888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
private:
static const uint16_t MAX_DICT_SIZE = 512U;
static const uint16_t BLOCK_SIZE = 1024U;
LZW9DictionaryEntry lzw9Dictionary[MAX_DICT_SIZE];
uint8_t entryBuffer[64]; // Having 64byte max entry sizes entails 1 + 2 + ... + 63 + 64 = 2080px size image blocks
};
DecompressorL8Base* decompressorL8_L4;
DecompressorL8Base* decompressorL8_RLE;
DecompressorL8Base* decompressorL8_LZW9;
}; };
} // namespace touchgfx } // namespace touchgfx

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.
@ -381,6 +381,32 @@ public:
return blendRGBwithXrgb8888(r | (r >> 5), g | (g >> 6), b | (b >> 5), bgXRGB8888, fgAlpha, bgAlpha); return blendRGBwithXrgb8888(r | (r >> 5), g | (g >> 6), b | (b >> 5), bgXRGB8888, fgAlpha, bgAlpha);
} }
/**
* Enables all the decompressors available for L8 images (L4, RLE and LZW9).
* This allows drawing L4, RLE and LZW9 compressed L8 images.
*
* @see enableDecompressorL8_L4, enableDecompressorL8_RLE, enableDecompressorL8_LZW9
*/
void enableDecompressorL8_All();
/**
* Enables the decompressor for L8 images compressed with the L4 algorithm.
* This allows drawing L4 compressed L8 images.
*/
void enableDecompressorL8_L4();
/**
* Enables the decompressor for L8 images compressed with the RLE algorithm.
* This allows drawing RLE compressed L8 images.
*/
void enableDecompressorL8_RLE();
/**
* Enables the decompressor for L8 images compressed with the LZW9 algorithm.
* This allows drawing LZW9 compressed L8 images.
*/
void enableDecompressorL8_LZW9();
protected: protected:
virtual DrawTextureMapScanLineBase* getTextureMapperDrawScanLine(const TextureSurface& texture, RenderingVariant renderVariant, uint8_t alpha); virtual DrawTextureMapScanLineBase* getTextureMapperDrawScanLine(const TextureSurface& texture, RenderingVariant renderVariant, uint8_t alpha);
@ -446,7 +472,7 @@ protected:
* @param alpha The alpha value to use for blending applied to the whole image (255 = * @param alpha The alpha value to use for blending applied to the whole image (255 =
* solid, no blending) * solid, no blending)
*/ */
static void blitCopyL8(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha); void blitCopyL8(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
/** /**
* Blits a 2D indexed 8-bit source to the framebuffer performing alpha-blending per * Blits a 2D indexed 8-bit source to the framebuffer performing alpha-blending per
@ -884,6 +910,61 @@ private:
FORCE_INLINE_FUNCTION void writePixel(uint32_t* const destBits, const uint16_t* const textureBits, const int16_t bitmapStride, const int UInt, const int VInt, const uint8_t UFrac, const uint8_t VFrac) const; FORCE_INLINE_FUNCTION void writePixel(uint32_t* const destBits, const uint16_t* const textureBits, const int16_t bitmapStride, const int UInt, const int VInt, const uint8_t UFrac, const uint8_t VFrac) const;
void writePixelOnEdge(uint32_t* const destBits, const uint16_t* const textureBits, const int16_t bitmapStride, const int16_t bitmapWidth, const int16_t bitmapHeight, const int UInt, const int VInt, const uint8_t UFrac, const uint8_t VFrac) const; void writePixelOnEdge(uint32_t* const destBits, const uint16_t* const textureBits, const int16_t bitmapStride, const int16_t bitmapWidth, const int16_t bitmapHeight, const int UInt, const int VInt, const uint8_t UFrac, const uint8_t VFrac) const;
}; };
class DecompressorL8Base
{
public:
virtual ~DecompressorL8Base()
{
}
virtual void blitCopyRGB565(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha) = 0;
virtual void blitCopyRGB888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha) = 0;
virtual void blitCopyARGB8888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha) = 0;
};
class DecompressorL8_L4 : public DecompressorL8Base
{
public:
virtual void blitCopyRGB565(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
virtual void blitCopyRGB888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
virtual void blitCopyARGB8888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
private:
void blendPixelRGB565(const uint16_t imagePixel, uint32_t* fbPixel, const uint8_t alpha, const uint8_t ialpha) const;
void blendPixelARGB8888(const uint8_t* imagePixel, uint32_t* fbPixel, const uint8_t alpha) const;
void blendPixelRGB888(const uint8_t* imagePixel, uint32_t* fbPixel, const uint8_t alpha, const uint8_t ialpha) const;
};
class DecompressorL8_RLE : public DecompressorL8Base
{
public:
virtual void blitCopyRGB565(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
virtual void blitCopyRGB888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
virtual void blitCopyARGB8888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
private:
static const uint16_t BLOCK_SIZE = 1024U;
};
class DecompressorL8_LZW9 : public DecompressorL8Base
{
public:
virtual void blitCopyRGB565(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
virtual void blitCopyRGB888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
virtual void blitCopyARGB8888(const uint8_t* sourceData, const uint8_t* clutData, const Rect& source, const Rect& blitRect, uint8_t alpha);
private:
static const uint16_t MAX_DICT_SIZE = 512U;
static const uint16_t BLOCK_SIZE = 1024U;
LZW9DictionaryEntry lzw9Dictionary[MAX_DICT_SIZE];
uint8_t entryBuffer[64]; // Having 64byte max entry sizes entails 1 + 2 + ... + 63 + 64 = 2080px size image blocks
};
DecompressorL8Base* decompressorL8_L4;
DecompressorL8Base* decompressorL8_RLE;
DecompressorL8Base* decompressorL8_LZW9;
}; };
} // namespace touchgfx } // namespace touchgfx

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.
@ -284,17 +284,29 @@ public:
/** /**
* Invalidates the entire screen. * Invalidates the entire screen.
*
* @param area The area to invalidate.
*/ */
void invalidate(); virtual void invalidate();
/** /**
* Invalidates the given area. * Invalidates the given area.
* *
* @param area The area to invalidate. * @param area The area to invalidate.
*/ */
void invalidateArea(Rect area); virtual void invalidateArea(Rect area);
/**
* Get list of the invalidated areas in the current frame.
* The list is cleared in the beginning of HAL::tick.
*
* The list can be usefull on some platforms where the information
* can be used to reduce the amount of pixels sent to the display.
*
* @return Const reference to the list.
*/
const Vector<Rect, 8>& getInvalidatedAreas()
{
return cachedDirtyAreas;
}
protected: protected:
/** Protected constructor. */ /** Protected constructor. */

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.
@ -71,6 +71,15 @@ public:
CUSTOM ///< Non-standard platform specific format CUSTOM ///< Non-standard platform specific format
}; };
/** Algorithms used for L8 images compression can be stored in the following formats. */
enum Compression
{
COMPRESSION_L8_NONE = 0, ///< No compression applied on the L8 image
COMPRESSION_L8_L4 = 1, ///< L4 compression applied on the L8 image
COMPRESSION_L8_RLE = 2, ///< RLE compression applied on the L8 image
COMPRESSION_L8_LZW9 = 3 ///< LZW9 compression applied on the L8 image
};
/** Data of a bitmap. */ /** Data of a bitmap. */
struct BitmapData struct BitmapData
{ {
@ -314,6 +323,23 @@ public:
/** Clears the cached bitmaps from RAM. */ /** Clears the cached bitmaps from RAM. */
static void clearCache(); static void clearCache();
/**
* Decompress a compressed bitmap into the bitmap cache. The
* decompressed bitmap will automatically be used by all Widgets.
*
* Only compressed L8 images can be decompressed. The decompressed
* bitmap will be L8 with an unchanged palette.
*
* When decompressing L8 bitmaps compressed with LZW an array of
* size 2048 bytes (16 bit aligned) must be supplied. The array is
* only used during decompressing.
*
* @param id The id of the Bitmap to decompress.
* @param buffer Pointer to a buffer for LZW decompression.
* @return true if the bitmap was decompressed.
*/
static bool decompress(BitmapId id, uint16_t* buffer = 0);
/** /**
* Create a dynamic Bitmap. The clutFormat parameter is ignored for bitmaps not in L8 format * Create a dynamic Bitmap. The clutFormat parameter is ignored for bitmaps not in L8 format
* (consider using dynamicBitmapCreateL8 instead). Creation of a new dynamic bitmap may cause * (consider using dynamicBitmapCreateL8 instead). Creation of a new dynamic bitmap may cause
@ -536,10 +562,13 @@ private:
static uint32_t getSizeOfBitmap(BitmapId id); static uint32_t getSizeOfBitmap(BitmapId id);
static uint32_t getSizeOfBitmapData(BitmapId id); static uint32_t getSizeOfBitmapData(BitmapId id);
static uint32_t getSizeOfBitmapExtraData(BitmapId id); static uint32_t getSizeOfBitmapExtraData(BitmapId id);
static bool cacheInternal(BitmapId id, uint32_t size); static bool cacheInternal(BitmapId id, uint32_t size, bool doCopy = true);
static bool isCustomDynamicBitmap(BitmapId id); static bool isCustomDynamicBitmap(BitmapId id);
static bool copyBitmapToCache(BitmapId id, uint8_t* const dst); static bool copyBitmapToCache(BitmapId id, uint8_t* const dst);
static uint32_t firstFreeDynamicBitmapId(); static uint32_t firstFreeDynamicBitmapId();
static uint32_t decompressL8_L4(uint8_t* dst, BitmapId id);
static uint32_t decompressL8_RLE(uint8_t* dst, BitmapId id);
static uint32_t decompressL8_LZW9(uint8_t* dst, BitmapId id, uint16_t* buffer = 0);
BitmapId bitmapId; BitmapId bitmapId;
static const BitmapData* bitmaps; static const BitmapData* bitmaps;
@ -553,6 +582,8 @@ private:
static uint16_t numberOfBitmaps; static uint16_t numberOfBitmaps;
static uint16_t numberOfDynamicBitmaps; static uint16_t numberOfDynamicBitmaps;
static uint16_t uncachedCount; ///< Uncached images, sort of ... static uint16_t uncachedCount; ///< Uncached images, sort of ...
static const uint16_t RLE_BLOCK_SIZE = 1024U;
}; };
} // namespace touchgfx } // namespace touchgfx

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.
@ -321,13 +321,12 @@ public:
TOUCHGFX_DEPRECATED("Please use getBaseline() instead.", virtual uint16_t getFontHeight() const); TOUCHGFX_DEPRECATED("Please use getBaseline() instead.", virtual uint16_t getFontHeight() const);
/** /**
* Returns the position of the baseline of this font. The returned value corresponds to the * Returns the position of the baseline of this font in pixels from the top of the line.
* maximum height occupied by a character in the font.
* *
* @return The height in pixels of this font. * @return The baseline position.
* *
* @note It is not sufficient to allocate text areas with this height. Use * @note It is not sufficient to allocate text areas with this height. Use
* getMinimumTextHeight for this. * getHeight for this.
*/ */
FORCE_INLINE_FUNCTION virtual uint16_t getBaseline() const FORCE_INLINE_FUNCTION virtual uint16_t getBaseline() const
{ {

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.
@ -467,9 +467,9 @@ public:
static uint16_t toUTF8(const UnicodeChar* unicode, uint8_t* utf8, uint16_t maxbytes); static uint16_t toUTF8(const UnicodeChar* unicode, uint8_t* utf8, uint16_t maxbytes);
private: private:
static void composeString(const UnicodeChar*& bufptr, UnicodeChar sign, UnicodeChar formatChar, bool hasPrecision, bool zeroPrefix, int precision, bool hasWidth, int width, bool alignLeft, int& charNumber, uint16_t dstSize, UnicodeChar* dst); static void composeString(const UnicodeChar*& bufptr, UnicodeChar numberSign, UnicodeChar formatChar, bool hasPrecision, bool zeroPrefix, int precision, bool hasWidth, int width, bool alignLeft, int& charNumber, uint16_t dstSize, UnicodeChar* dst);
static void parseFlagsAndPrecision(const UnicodeChar*& ucFormat, const char*& cFormat, UnicodeChar& sign, bool& alignLeft, bool& forceDecimalPoint, bool& zeroPrefix, bool& hasWidth, int& width, bool& hasPrecision, int& precision); static void parseFlagsAndPrecision(const UnicodeChar*& ucFormat, const char*& cFormat, UnicodeChar& numberSign, bool& alignLeft, bool& forceDecimalPoint, bool& zeroPrefix, bool& hasWidth, int& width, bool& hasPrecision, int& precision);
static const UnicodeChar* skip_spaces(const UnicodeChar* str); static const UnicodeChar* skip_spaces(const UnicodeChar* str);
static const UnicodeChar* skip_whitespace(const UnicodeChar* str); static const UnicodeChar* skip_whitespace(const UnicodeChar* str);

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.
@ -13,9 +13,9 @@
#ifndef TOUCHGFX_VERSION_HPP #ifndef TOUCHGFX_VERSION_HPP
#define TOUCHGFX_VERSION_HPP #define TOUCHGFX_VERSION_HPP
#define TOUCHGFX_VERSION 42102 #define TOUCHGFX_VERSION 42200
#define TOUCHGFX_VERSION_MAJOR 4 #define TOUCHGFX_VERSION_MAJOR 4
#define TOUCHGFX_VERSION_MINOR 21 #define TOUCHGFX_VERSION_MINOR 22
#define TOUCHGFX_VERSION_PATCH 2 #define TOUCHGFX_VERSION_PATCH 0
#endif // TOUCHGFX_VERSION_HPP #endif // TOUCHGFX_VERSION_HPP

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.
@ -70,7 +70,6 @@ public:
* @return Size of memory area used internally by Outline. * @return Size of memory area used internally by Outline.
*/ */
static unsigned int getOutlineBufferSize(); static unsigned int getOutlineBufferSize();
/// @endcond
#ifdef SIMULATOR #ifdef SIMULATOR
/** /**

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.
@ -139,7 +139,7 @@ public:
* @note The x and y position of the Slider will either be the left/top of the background or * @note The x and y position of the Slider will either be the left/top of the background or
* the left/top of the indicator in its minimum x coordinate. * the left/top of the indicator in its minimum x coordinate.
*/ */
virtual void setupHorizontalSlider(uint16_t backgroundX, uint16_t backgroundY, uint16_t indicatorY, uint16_t indicatorMinX, uint16_t indicatorMaxX); virtual void setupHorizontalSlider(int16_t backgroundX, int16_t backgroundY, int16_t indicatorY, int16_t indicatorMinX, int16_t indicatorMaxX);
/** /**
* Sets up the slider in vertical mode with the range going from the bottom to top. * Sets up the slider in vertical mode with the range going from the bottom to top.
@ -167,7 +167,7 @@ public:
* @note The x and y position of the Slider will either be the left/top of the background or * @note The x and y position of the Slider will either be the left/top of the background or
* the left/top of the indicator in its minimum y coordinate. * the left/top of the indicator in its minimum y coordinate.
*/ */
virtual void setupVerticalSlider(uint16_t backgroundX, uint16_t backgroundY, uint16_t indicatorX, uint16_t indicatorMinY, uint16_t indicatorMaxY); virtual void setupVerticalSlider(int16_t backgroundX, int16_t backgroundY, int16_t indicatorX, int16_t indicatorMinY, int16_t indicatorMaxY);
/** /**
* Gets indicator minimum previously set using setupHorizontalSlider() or * Gets indicator minimum previously set using setupHorizontalSlider() or
@ -177,7 +177,7 @@ public:
* *
* @see setupHorizontalSlider, setupVerticalSlider, getIndicatorMax * @see setupHorizontalSlider, setupVerticalSlider, getIndicatorMax
*/ */
virtual uint16_t getIndicatorMin() const virtual int16_t getIndicatorMin() const
{ {
return indicatorMinPosition; return indicatorMinPosition;
} }
@ -190,7 +190,7 @@ public:
* *
* @see setupHorizontalSlider, setupVerticalSlider, getIndicatorMin * @see setupHorizontalSlider, setupVerticalSlider, getIndicatorMin
*/ */
virtual uint16_t getIndicatorMax() const virtual int16_t getIndicatorMax() const
{ {
return indicatorMaxPosition; return indicatorMaxPosition;
} }
@ -208,7 +208,7 @@ public:
* @note If the range is larger than the number of pixels specified for the indicator min and * @note If the range is larger than the number of pixels specified for the indicator min and
* max some values will not be represented by the slider. * max some values will not be represented by the slider.
*/ */
virtual void setValueRange(int minValue, int maxValue, int newValue); virtual void setValueRange(int16_t minValue, int16_t maxValue, int16_t newValue);
/** /**
* Gets the minimum value previously set using setValueRange(). * Gets the minimum value previously set using setValueRange().
@ -217,7 +217,7 @@ public:
* *
* @see setValueRange, getMaxValue * @see setValueRange, getMaxValue
*/ */
virtual uint16_t getMinValue() const virtual int16_t getMinValue() const
{ {
return valueRangeMin; return valueRangeMin;
} }
@ -229,7 +229,7 @@ public:
* *
* @see setValueRange, getMinValue * @see setValueRange, getMinValue
*/ */
virtual uint16_t getMaxValue() const virtual int16_t getMaxValue() const
{ {
return valueRangeMax; return valueRangeMax;
} }
@ -247,7 +247,7 @@ public:
* @note If the range is larger than the number of pixels specified for the indicator min and * @note If the range is larger than the number of pixels specified for the indicator min and
* indicator max, some values will not be represented by the slider. * indicator max, some values will not be represented by the slider.
*/ */
virtual void setValueRange(int minValue, int maxValue); virtual void setValueRange(int16_t minValue, int16_t maxValue);
/** /**
* Places the indicator at the specified value relative to the specified value range. * Places the indicator at the specified value relative to the specified value range.
@ -263,7 +263,7 @@ public:
* thus is not possible to set with this method. In this case the value will be * thus is not possible to set with this method. In this case the value will be
* rounded to the nearest value that is represented in the current setting. * rounded to the nearest value that is represented in the current setting.
*/ */
virtual void setValue(int value); virtual void setValue(int16_t value);
/** /**
* Gets the current value represented by the indicator. * Gets the current value represented by the indicator.
@ -289,10 +289,10 @@ protected:
SliderOrientation sliderOrientation; ///< The selected slider orientation SliderOrientation sliderOrientation; ///< The selected slider orientation
int currentValue; ///< The current value represented by the slider int16_t currentValue; ///< The current value represented by the slider
int valueRangeMin; ///< The value range min int16_t valueRangeMin; ///< The value range min
int valueRangeMax; ///< The value range max int16_t valueRangeMax; ///< The value range max
Image background; ///< The background image Image background; ///< The background image
Image backgroundSelected; ///< The backgroundSelected image Image backgroundSelected; ///< The backgroundSelected image
@ -340,7 +340,7 @@ protected:
* *
* @return The the indicator radius. * @return The the indicator radius.
*/ */
virtual uint16_t getIndicatorRadius() const; virtual int16_t getIndicatorRadius() const;
/** /**
* Gets the indicator position range, i.e. the difference between max and min for the * Gets the indicator position range, i.e. the difference between max and min for the

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.
@ -29,8 +29,8 @@
namespace touchgfx namespace touchgfx
{ {
/** /**
* A SwipeContainer is a Container with a horizontally laid out list of identically sized Drawables. The bottom of * A SwipeContainer is a Container with a horizontally laid out list of identically sized Drawables.
* the SwipeContainer shows a page indicator to indicate the position in the horizontal * The bottom of the SwipeContainer shows a page indicator to indicate the position in the horizontal
* list of items in the SwipeContainer. * list of items in the SwipeContainer.
* *
* @see ListLayout * @see ListLayout

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

View File

@ -2,7 +2,7 @@
* Copyright (c) 2018(-2023) STMicroelectronics. * Copyright (c) 2018(-2023) STMicroelectronics.
* All rights reserved. * All rights reserved.
* *
* This file is part of the TouchGFX 4.21.2 distribution. * This file is part of the TouchGFX 4.22.0 distribution.
* *
* This software is licensed under terms that can be found in the LICENSE file in * This software is licensed under terms that can be found in the LICENSE file in
* the root directory of this software component. * the root directory of this software component.

Some files were not shown because too many files have changed in this diff Show More