一个在Ubuntu平台的opengl的例子
来源:互联网 发布:windows php zip扩展 编辑:程序博客网 时间:2024/06/07 00:34
OpenGL有很强的渲染效果.我们可以把QML界面和OpenGL结合起来得到更强的渲染效果.在今天的例子中,我们仿照例程"Scene Graph - OpenGL Under QML",并把它移植到我们的Ubuntu手机平台中来.
为了移植的方便,我们采用了我们Ubuntu SDK中的"QtQuick App with QML UI (qmake)"模版.
这个模版的好处是可以很容把我们所需要的C++代码加入到我们的应用中去.我们需要把我们的C++代码加入到我们的.pro文件中:
SOURCES += main.cpp squircle.cppHEADERS += squircle.h
另外:
main.cpp
#include <QGuiApplication>#include <QQmlApplicationEngine>#include <QQuickView>#include "squircle.h"int main(int argc, char *argv[]){ QGuiApplication app(argc, argv); qmlRegisterType<Squircle>("OpenGLUnderQML", 1, 0, "Squircle"); QQuickView view; view.setSource(QUrl(QStringLiteral("qrc:///Main.qml"))); view.setResizeMode(QQuickView::SizeRootObjectToView); view.show(); return app.exec();}
Main.qml
import QtQuick 2.0import Ubuntu.Components 1.1import OpenGLUnderQML 1.0Item { width: 320 height: 480 Squircle { SequentialAnimation on t { NumberAnimation { to: 1; duration: 2500; easing.type: Easing.InQuad } NumberAnimation { to: 0; duration: 2500; easing.type: Easing.OutQuad } loops: Animation.Infinite running: true } } //! [1] //! [2] Rectangle { color: Qt.rgba(1, 1, 1, 0.7) radius: 10 border.width: 1 border.color: "white" anchors.fill: label anchors.margins: -10 } Text { id: label color: "black" wrapMode: Text.WordWrap text: "The background here is a squircle rendered with raw OpenGL using the 'beforeRender()' signal in QQuickWindow. This text label and its border is rendered using QML" anchors.right: parent.right anchors.left: parent.left anchors.bottom: parent.bottom anchors.margins: 20 }}
注意,我们不能再使用MainView及Page了,否则我们不能正确地显示我们的画面.
运行我们的应用:
从上面我们可以看出来,OpenGL可以和QML完美地结合在一起.
整个项目的源码在:https://github.com/liu-xiao-guo/openglqmlexample
0 0
- 一个在Ubuntu平台的opengl的例子
- 在MFC下使用OpenGL的一个简单的例子
- 在MFC下使用OpenGL的一个简单的例子
- 一个OpenGL的小例子
- OpenGL: 一个简单的例子
- 一个测试openGL的小例子
- 分析一个别人的qt+opengl例子
- 在Ubuntu下配置Glut在Codeblocks平台实现基本的opengl实验
- 在MFC下使用OpenGL的一个简单的例子(转)
- 在MFC下使用OpenGL的一个简单的例子(基于单文档程序)
- 一个基于JBOSS平台的MBean例子
- 一个.net平台调用的例子
- 基于MFC的OpenGL的一个简单例子
- Android 官网的一个OpenGL ES的例子
- 一个OpenGL ES 的简单使用例子代码
- Cocoa+OpenGL编程(一):一个简单的例子
- OpenGL Red Book的一个例子代码 crash
- OpenMesh学习笔记5 OpenMesh+OpenGL的一个例子
- 欢迎使用CSDN-markdown编辑器
- 关于秦岭分水岭
- C++面试题
- Ubuntu 14.04 LTS设备挂载
- DIB与IplImage图像格式的相互转换
- 一个在Ubuntu平台的opengl的例子
- 1069. The Black Hole of Numbers (20)
- Andrew XUtils的session获得和cookieStore使用
- bestcoder#54 The Factor
- 单目视觉SLAM: Monoslam scenelib2 by Davison
- Memory Analyzer Tool定位Java heap space内存泄漏
- js随机产生x到y(例如:0-10)的随机整数,存储在数组中
- group by的一些使用
- 关于磁盘性能(IO)瓶颈