20#include "pedigree/kernel/Log.h"
21#include "pedigree/kernel/graphics/Graphics.h"
22#include "pedigree/kernel/machine/Framebuffer.h"
23#include "pedigree/kernel/utilities/new"
26 size_t h,
void* pFbOverride) {
33 if ((x > pParent->getWidth()) || (y > pParent->getHeight()))
38 Graphics::PixelFormat format = pParent->getFormat();
40 size_t bytesPerPixel = pParent->getBytesPerPixel();
41 size_t bytesPerLine = bytesPerPixel * w;
46 pMem =
new uint8_t[bytesPerLine * h];
48 pMem =
reinterpret_cast<uint8_t*
>(pFbOverride);
49 NOTICE(
"pMem: " <<
reinterpret_cast<uintptr_t
>(pMem) <<
" ov=" << (pFbOverride ?
"yes" :
"no"));
53 pRet->setFramebuffer(
reinterpret_cast<uintptr_t
>(pMem));
56 pRet->setFormat(format);
57 pRet->setBytesPerPixel(bytesPerPixel);
58 pRet->setBytesPerLine(bytesPerLine);
65void Graphics::destroyFramebuffer(
Framebuffer* pFramebuffer) {
70 if (pFramebuffer->getParent())
71 pFramebuffer->
redraw(0, 0, pFramebuffer->getWidth(), pFramebuffer->getHeight(),
false);
virtual void * getRawBuffer() const
void redraw(size_t x=~0UL, size_t y=~0UL, size_t w=~0UL, size_t h=~0UL, bool bChild=false)
Framebuffer * m_pParent
Parent of this framebuffer.