wasm: hellogl2 screen is black
We need to reset the OpenGL state in paintGL for the drawing to work, Also, disable the dock/add window functionality as it does not work on webassembly. Change-Id: I480d944bc2029a07d5d49f0a85c3754fbc8cd53c Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
This commit is contained in:
parent
04b8b61ce5
commit
e40fdf19ab
@ -7,6 +7,7 @@
|
||||
#include <QCoreApplication>
|
||||
#include <math.h>
|
||||
|
||||
// Set from main
|
||||
bool GLWidget::m_transparent = false;
|
||||
|
||||
GLWidget::GLWidget(QWidget *parent)
|
||||
@ -209,9 +210,11 @@ void GLWidget::setupVertexAttribs()
|
||||
|
||||
void GLWidget::paintGL()
|
||||
{
|
||||
glClearColor(0, 0, 0, m_transparent ? 0 : 1);
|
||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
glEnable(GL_CULL_FACE);
|
||||
setupVertexAttribs();
|
||||
|
||||
m_world.setToIdentity();
|
||||
m_world.rotate(180.0f - (m_xRot / 16.0f), 1, 0, 0);
|
||||
|
@ -42,6 +42,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
MainWindow mainWindow;
|
||||
|
||||
// Note: Transparency does not work for wasm
|
||||
GLWidget::setTransparent(parser.isSet(transparentOption));
|
||||
if (GLWidget::isTransparent()) {
|
||||
mainWindow.setAttribute(Qt::WA_TranslucentBackground);
|
||||
|
@ -11,12 +11,13 @@
|
||||
|
||||
MainWindow::MainWindow()
|
||||
{
|
||||
#ifndef Q_OS_WASM
|
||||
QMenu *menuWindow = menuBar()->addMenu(tr("&Window"));
|
||||
menuWindow->addAction(tr("Add new"), QKeySequence(Qt::CTRL | Qt::Key_N),
|
||||
this, &MainWindow::onAddNew);
|
||||
menuWindow->addAction(tr("Quit"), QKeySequence(Qt::CTRL | Qt::Key_Q),
|
||||
qApp, QApplication::closeAllWindows);
|
||||
|
||||
#endif
|
||||
onAddNew();
|
||||
}
|
||||
|
||||
|
@ -45,10 +45,13 @@ Window::Window()
|
||||
container->addWidget(zSlider);
|
||||
|
||||
mainLayout->addWidget(w);
|
||||
dockBtn = nullptr;
|
||||
|
||||
#ifndef Q_OS_WASM
|
||||
dockBtn = new QPushButton(tr("Undock"), this);
|
||||
connect(dockBtn, &QPushButton::clicked, this, &Window::dockUndock);
|
||||
mainLayout->addWidget(dockBtn);
|
||||
|
||||
#endif
|
||||
xSlider->setValue(15 * 16);
|
||||
ySlider->setValue(345 * 16);
|
||||
zSlider->setValue(0 * 16);
|
||||
|
Loading…
x
Reference in New Issue
Block a user