20#ifndef PEDIGREE_FB_FRAMEBUFFER_H
21#define PEDIGREE_FB_FRAMEBUFFER_H
25#include <cairo/cairo.h>
26#include <pedigree/fb.h>
46 explicit operator bool()
const {
53 sigset_t m_PreviousMask;
68 int enterMode(
size_t desiredW,
size_t desiredH,
size_t desiredBpp);
75 return m_pFramebuffer;
79 void flush(
size_t x,
size_t y,
size_t w,
size_t h);
90 size_t getHeight()
const {
93 size_t getBytesPerLine()
const {
94 return m_BytesPerLine;
99 static void terminalSignal(
int signal);
100 void releaseTerminal();
102 void* m_pFramebuffer;
103 size_t m_FramebufferSize;
105 cairo_format_t m_Format;
109 size_t m_BytesPerLine;
117 volatile sig_atomic_t m_TerminalActive = 1;
118 volatile sig_atomic_t m_TerminalRedraw = 0;
119 int m_PreviousDisplayMode = 0;
120 vt_mode m_PreviousTerminalMode = {};
121 struct sigaction m_PreviousReleaseAction = {};
122 struct sigaction m_PreviousAcquireAction = {};
123 sigset_t m_PreviousTerminalMask;
void flush(size_t x, size_t y, size_t w, size_t h)
void * getFramebuffer() const
cairo_format_t getFormat() const
int enterMode(size_t desiredW, size_t desiredH, size_t desiredBpp)