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 eglMakeCurrent

    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日
    浏览(10)
  • OpenGL ES EGL eglCreateContext

    OpenGL ES EGL eglCreateContext

    目录 一. EGL 前言 二. EGL 绘制流程简介 三.eglCreateContext 函数简介 1.关于属性列表 attribList 2.关于返回值 四.eglCreateContext 函数使用 五.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 OpenGL ES 基础 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 OpenGL ES 特效 零基础 Op

    2023年04月08日
    浏览(9)
  • OpenGL ES EGL eglCreateWindowSurface

    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日
    浏览(9)
  • wayland(xdg_wm_base) + egl + opengles 最简实例(一)

    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日
    浏览(12)
  • 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日
    浏览(8)
  • OpenGL ES与EGL的关系(二十一),完美讲解内存缓存LruCache实现原理

    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日
    浏览(16)
  • Android OpenGL ES 学习(十) – GLSurfaceView 源码解析GL线程以及自定义 EGL

    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日
    浏览(11)
  • wayland(xdg_wm_base) + egl + opengles 使用 Assimp 加载带光照信息的材质文件Mtl 实现光照贴图的最简实例(十七)

    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日
    浏览(14)
  • Android OpenGL EGL使用——自定义相机

    Android OpenGL EGL使用——自定义相机

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

    2024年01月22日
    浏览(9)
  • 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日
    浏览(12)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包