qnx 上screen + egl + opengles 最简实例

这篇具有很好参考价值的文章主要介绍了qnx 上screen + egl + opengles 最简实例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

本文主要介绍如何在QNX 系统上使用egl和opengles 控制GPU渲染一个三角形并显示到屏幕上,是一个最基础的screen + egl + opengles 使用实例
软件环境:
qnx7.1
opengles2.0
egl1.4


一、qnx 上的窗口系统——screen

linux 上有wayland/weston 窗口系统,而 screen 就是 qnx 上的窗口系统,qnx screen 相关的介绍可以查看 screen 官方文档, 而在screen 上如何使用opengles 来渲染,则可以查看 screen opengles rending API
主要的几个步骤如下图所示:
qnx 上screen + egl + opengles 最简实例,QNX,OpenGL ES,车载系统
显示框架如下图所示:
qnx 上screen + egl + opengles 最简实例,QNX,OpenGL ES,车载系统

二、screen + egl + opengles 最简实例

1.使用 addvariant 命令创建工程目录

执行 addvariant -i OS nto aarch64 o.le 命令生成工程目录和相关文件,如下图所示
qnx 上screen + egl + opengles 最简实例,QNX,OpenGL ES,车载系统

2. 添加源码文件

在工程根目录下添加 opengles_screen.copengles_screen.use 文件后,工程目录结构如下图所示
qnx 上screen + egl + opengles 最简实例,QNX,OpenGL ES,车载系统
其中 opengles_screen.c (源码文件)内容如下文章来源地址https://www.toymoban.com/news/detail-816002.html

#include <stdio.h>
#include <screen/screen.h>
#include <EGL/egl.h>
#include <GLES2/gl2.h>

// 顶点着色器
const char* vertexShaderSource =
    "attribute vec4 position;\n"
    "void main() {\n"
    "   gl_Position = position;\n"
    "}\n";

// 片段着色器
const char* fragmentShaderSource =
    "void main() {\n"
    "   gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);\n"
    "}\n";

int main()
{
   
    // Create a Screen context
	screen_context_t screen_ctx;
	screen_create_context(&screen_ctx, SCREEN_APPLICATION_CONTEXT);

	//Create a render target
	screen_window_t screen_win;
	screen_create_window(&screen_win, screen_ctx);
	
	int usage, format;
	int interval = 1;
	in

到了这里,关于qnx 上screen + egl + opengles 最简实例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenGL ES EGL eglCreatePbufferSurface

    目录 一. EGL 前言 二. EGL 绘制流程简介 三.eglCreatePbufferSurface 函数简介 1.eglCreatePbufferSurface 简介 2.eglCreatePbufferSurface 和 eglCreateWindowSurface 区别 四.eglCreatePbufferSurface 使用 五.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 OpenGL ES 基础 零基础 OpenGL ES 学习路线推荐 : O

    2024年02月01日
    浏览(34)
  • OpenGL ES EGL eglMakeCurrent

    目录 一. EGL 前言 二. EGL 绘制流程简介 三.eglMakeCurrent 函数简介 1.eglMakeCurrent 简介 2.eglMakeCurrent 实现 3.eglMakeCurrent 使用 四.关于多个 EGLContext 五.共享 EGLContext 六.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 OpenGL ES 基础 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目

    2024年02月14日
    浏览(29)
  • OpenGL ES EGL eglCreateWindowSurface

    一. EGL 前言 二. EGL 绘制流程简介 三.eglCreateWindowSurface 函数简介 1.eglCreateWindowSurface 函数 2.EGLSurface 分类 四.eglCreateWindowSurface 函数使用 五.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 OpenGL ES 基础 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 OpenGL ES 特效 零基础

    2023年04月10日
    浏览(34)
  • wayland(xdg_wm_base) + egl + opengles 最简实例(一)

    `本文主要介绍如何在linux 下,基于 xdg_wm_base 接口的 wayland client 中 使用 egl + opengles 渲染一个最基本的三角形 软硬件环境: 硬件:PC 软件: ubuntu22.04 EGL1.4 openGL ES3.1 weston9.0 之前的文章 weston 源码下载及编译 介绍了如何在ubuntu 22.04 下面编译 weston9.0 ,在编译结束后,在build 目

    2024年02月20日
    浏览(32)
  • wayland(xdg_wm_base) + egl + opengles 纹理贴图最简实例(三)

    本文主要介绍如何在一个wayland client 里面使用 egl + opengles 实现一个最简单的纹理贴图功能,在阅读本篇文章之前,建议先读一下之前的文章 《wayland(xdg_wm_base) + egl + opengles 最简实例》 软硬件环境 硬件:PC 软件:ubuntu22.04 weston9.0 opengles2.0 egl1.4 纹理贴图(Texture Mapping)是计算

    2024年02月20日
    浏览(29)
  • OpenGL ES与EGL的关系(二十一),完美讲解内存缓存LruCache实现原理

    glEnable(GL_TEXTURE_2D); glTexEnvx(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); const GLint xc = (mWidth - mAndroid[0].w) / 2; const GLint yc = (mHeight - mAndroid[0].h) / 2; const Rect updateRect(xc, yc, xc + mAndroid[0].w, yc + mAndroid[0].h); glScissor(updateRect.left, mHeight - updateRect.bottom, updateRect.width(), updateRect.height()); // Blend st

    2024年04月11日
    浏览(30)
  • Android OpenGL ES 学习(十) – GLSurfaceView 源码解析GL线程以及自定义 EGL

    OpenGL 学习教程 Android OpenGL ES 学习(一) – 基本概念 Android OpenGL ES 学习(二) – 图形渲染管线和GLSL Android OpenGL ES 学习(三) – 绘制平面图形 Android OpenGL ES 学习(四) – 正交投影 Android OpenGL ES 学习(五) – 渐变色 Android OpenGL ES 学习(六) – 使用 VBO、VAO 和 EBO/IBO 优化程序 Android OpenG

    2024年02月05日
    浏览(33)
  • wayland(xdg_wm_base) + egl + opengles 使用 Assimp 加载带光照信息的材质文件Mtl 实现光照贴图的最简实例(十七)

    `本文主要介绍opengles 如何使用 第三方库Assimp(基于C++) 加载一个最简单的带光照信息以及纹理 的3d 立方体model,3d 立方体 model 信息存储在 cube.obj 中,光照信息以及纹理图片信息存储在cube.Mtl 材质文件中,主要是介绍如何使用Assimp 解析Mtl 文件。 软硬件环境: 硬件:PC 软件

    2024年04月14日
    浏览(27)
  • Android OpenGL EGL使用——自定义相机

    如果要使用OpenGl来自定义相机,EGL还是需要了解下的。 可能大多数开发者使用过OpengGL但是不知道EGL是什么?EGL的作用是什么?这其实一点都不奇怪,因为Android中的GlSurfaceView已经将EGL环境都给配置好了,你一直在使用,只是不知道他的存在罢了。 很多人可能在使用OpenGl ES渲

    2024年01月22日
    浏览(31)
  • wayland(xdg_wm_base) + egl + opengles 光照模型实例(十五)

    本文主要介绍如何使用 wayland(xdg_wm_base) + egl + opengles3.0 绘制一个使用冯氏光照模型(Phong Lighting Model)的绕Y轴旋转的正方体,主要涉及环境(Ambient)、漫反射(Diffuse)和镜面(Specular)光照,使用一个固定位置和颜色的光源。 软硬件环境: 硬件:PC 软件:ubuntu22.04 egl1.4 opengles3.0 weston

    2024年03月15日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包