newrpl/qemuscreen.h
2018-09-12 19:01:39 -04:00

51 lines
1.1 KiB
C++

/*
* Copyright (c) 2014-2015, Claudio Lapilli and the newRPL Team
* All rights reserved.
* This file is released under the 3-clause BSD license.
* See the file LICENSE.txt that shipped with this distribution.
*/
#ifndef QEMUSCREEN_H
#define QEMUSCREEN_H
#include <QGraphicsView>
class QEmuScreen : public QGraphicsView
{
Q_OBJECT
public:
// SIZE OF THE SCREEN TO EMULATE
int screen_width;
int screen_height;
qreal m_scale;
// MAIN COLORS, ALL GRAYS WILL BE INTERPOLATED
QColor BkgndColor;
QColor MainColor;
QColor Grays[16]; // ARRAY WITH ALL THE DIFFERENT GRAY LEVELS
QBrush GrayBrush[16];
QPen BkgndPen;
QPixmap annHourglass,annComms,annAlpha,annBattery,annLShift,annRShift;
QGraphicsScene scr;
QGraphicsRectItem **Pixels;
QGraphicsPixmapItem *Annunciators[6];
void setPixel(int offset,int color);
void setWord(int offset,unsigned int color);
void setMode(int _mode,unsigned int *_buffer);
void setScale(qreal _scale);
explicit QEmuScreen(QWidget *parent = 0);
signals:
public slots:
void update();
};
#endif // QSCREEN_H