TinyGPU
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | List of all members
DisplayDriverSTM32F723Discovery Class Reference

DisplayDriver<RGB565> wrapping the stm32f723-disco library's LCD class - the library owns the panel's init sequence and pixel output entirely (STM32Cube BSP driving the STM32F723's FMC peripheral), so this class is a thin adapter rather than a bus-level driver like DisplayDriverSPI/QSPI/DSI. Fixed 240x240 resolution - the panel is square, so width()/height() don't change with orientation. More...

#include <LCDBoardsSTM32F723Discovery.h>

Inheritance diagram for DisplayDriverSTM32F723Discovery:
Inheritance graph
[legend]
Collaboration diagram for DisplayDriverSTM32F723Discovery:
Collaboration graph
[legend]

Public Member Functions

 DisplayDriverSTM32F723Discovery (stm32f723::LcdOrientation orientation=stm32f723::LcdOrientation::Landscape)
 
bool begin () override
 Resets and initializes the panel via the stm32f723-disco BSP wrapper.
 
size_t width () const override
 
size_t height () const override
 
bool writeData (ISurface< RGB565 > &surface) override
 
bool writeData (ISurface< RGB565 > &surface, size_t x, size_t y) override
 
stm32f723::LCD & lcd ()
 
- Public Member Functions inherited from DisplayDriver< RGB565 >
virtual ~DisplayDriver ()=default
 
virtual bool begin ()=0
 
virtual void end ()
 
virtual bool writeData (ISurface< RGB565 > &surface)=0
 
virtual bool writeData (ISurface< RGB565 > &surface, size_t x, size_t y)=0
 
virtual void setRotation (DisplayRotation rotation)
 
virtual size_t width () const=0
 
virtual size_t height () const=0
 
void writeColor (size_t width, size_t height, RGB565 color)
 

Protected Member Functions

bool setAddressWindow (size_t x, size_t y, size_t w, size_t h) override
 
virtual bool setAddressWindow (size_t x, size_t y, size_t w, size_t h)=0
 

Additional Inherited Members

- Protected Attributes inherited from DisplayDriver< RGB565 >
Font5x7< RGB565 > defaultFont
 

Detailed Description

DisplayDriver<RGB565> wrapping the stm32f723-disco library's LCD class - the library owns the panel's init sequence and pixel output entirely (STM32Cube BSP driving the STM32F723's FMC peripheral), so this class is a thin adapter rather than a bus-level driver like DisplayDriverSPI/QSPI/DSI. Fixed 240x240 resolution - the panel is square, so width()/height() don't change with orientation.

Byte order: LCD::drawRGBImage() expects the conventional (native) RGB565 bit layout - like DisplayDriverSDL's SDL texture upload, this is the opposite of TinyGPU's own stored (SPI-wire-swapped) byte order (see RGB565.h), so writeData() swaps into a scratch buffer before calling drawRGBImage() rather than mutating the surface.

Constructor & Destructor Documentation

◆ DisplayDriverSTM32F723Discovery()

DisplayDriverSTM32F723Discovery ( stm32f723::LcdOrientation  orientation = stm32f723::LcdOrientation::Landscape)
inlineexplicit

Member Function Documentation

◆ begin()

bool begin ( )
inlineoverridevirtual

Resets and initializes the panel via the stm32f723-disco BSP wrapper.

Implements DisplayDriver< RGB565 >.

◆ height()

size_t height ( ) const
inlineoverridevirtual

◆ lcd()

stm32f723::LCD & lcd ( )
inline

Direct access to the underlying stm32f723::LCD instance - e.g. for displayOn()/displayOff() or the library's own text/shape drawing, which this driver doesn't wrap.

◆ setAddressWindow()

bool setAddressWindow ( size_t  x,
size_t  y,
size_t  w,
size_t  h 
)
inlineoverrideprotectedvirtual

◆ width()

size_t width ( ) const
inlineoverridevirtual

Current addressable panel width/height in pixels - for a driver that supports setRotation(), these reflect the current rotation (landscape vs portrait swaps them; see isLandscapeFamily()), not necessarily the panel's native/physical orientation. Callers that need to lay out content (e.g. OutputTinyGPU's scale_to_fit target, or clearScreen()'s band loop) should read these fresh rather than caching their own copy, so a setRotation() call is picked up automatically without needing separate bookkeeping.

Implements DisplayDriver< RGB565 >.

◆ writeData() [1/2]

bool writeData ( ISurface< RGB565 > &  surface)
inlineoverridevirtual

◆ writeData() [2/2]

bool writeData ( ISurface< RGB565 > &  surface,
size_t  x,
size_t  y 
)
inlineoverridevirtual

The documentation for this class was generated from the following file: