29 lines
729 B
C++
29 lines
729 B
C++
#pragma once
|
|||
|
|
|
||
|
|
#include "ili9325_registers.h"
|
||
|
|
#include "ili9325.h"
|
||
|
|
#include "display_fsmc_interface.h"
|
||
|
|
#include <SoftGL/StaticTexture.h>
|
||
|
|
|
||
|
|
class SwapChain {
|
||
|
|
public:
|
||
|
|
using Lcd = Ili9325::Driver<Stm32PlusPlus::Display::DisplayFsmcInterface>;
|
||
|
|
using BackBufferMipChain = MipChain<sizeof(uint16_t), Lcd::Width, Lcd::Height, 0>;
|
||
|
|
using BackBuffer = StaticTexture<BackBufferMipChain*>;
|
||
|
|
|
||
|
|
SwapChain();
|
||
|
|
void init();
|
||
|
|
void present();
|
||
|
|
|
||
|
|
BackBuffer& getBackBuffer(){
|
||
|
|
return _backBufferTexture;
|
||
|
|
}
|
||
|
|
static TextureDescription getBackBufferDescription();
|
||
|
|
private:
|
||
|
|
|
||
|
|
void beginLcdUpload();
|
||
|
|
void waitLcdUpload();
|
||
|
|
|
||
|
|
alignas(32) BackBufferMipChain _backBuffer;
|
||
|
|
BackBuffer _backBufferTexture;
|
||
|
|
};
|