当前位置:   article > 正文

qnx 上screen + egl + opengles 最简实例_qnx gles

qnx gles


前言

本文主要介绍如何在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
主要的几个步骤如下图所示:
在这里插入图片描述
显示框架如下图所示:
在这里插入图片描述

二、screen + egl + opengles 最简实例

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

执行 addvariant -i OS nto aarch64 o.le 命令生成工程目录和相关文件,如下图所示
在这里插入图片描述

2. 添加源码文件

在工程根目录下添加 opengles_screen.copengles_screen.use 文件后,工程目录结构如下图所示
在这里插入图片描述
其中 opengles_screen.c (源码文件)内容如下

#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;
	int size[<
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/417572
推荐阅读
相关标签
  

闽ICP备14008679号