mirror of https://github.com/bsnes-emu/bsnes.git
40 lines
993 B
C++
Executable File
40 lines
993 B
C++
Executable File
void Canvas::create(Window &parent, unsigned x, unsigned y, unsigned width, unsigned height) {
|
|
canvas->image = new QImage(width, height, QImage::Format_RGB32);
|
|
canvas->image->fill(0);
|
|
canvas->setParent(parent.window->container);
|
|
canvas->setGeometry(x, y, width, height);
|
|
canvas->show();
|
|
}
|
|
|
|
void Canvas::setGeometry(unsigned x, unsigned y, unsigned width, unsigned height) {
|
|
delete canvas->image;
|
|
canvas->image = new QImage(width, height, QImage::Format_RGB32);
|
|
canvas->image->fill(0);
|
|
canvas->setGeometry(x, y, width, height);
|
|
canvas->update();
|
|
}
|
|
|
|
uint32_t* Canvas::buffer() {
|
|
return (uint32_t*)canvas->image->bits();
|
|
}
|
|
|
|
void Canvas::redraw() {
|
|
canvas->update();
|
|
}
|
|
|
|
Canvas::Canvas() {
|
|
canvas = new Canvas::Data(*this);
|
|
canvas->image = 0;
|
|
widget->widget = canvas;
|
|
}
|
|
|
|
Canvas::~Canvas() {
|
|
if(canvas->image) delete canvas->image;
|
|
delete canvas;
|
|
}
|
|
|
|
void Canvas::Data::paintEvent(QPaintEvent *event) {
|
|
QPainter painter(this);
|
|
painter.drawImage(0, 0, *image);
|
|
}
|