随笔分类 -  OpenGL ES

SurfaceView+EGL+OpenGL ES+ffmpeg播放视频并解决黑屏不显示画面的问题
摘要:一、概述 使用纯C++开发的方式实现EGL、OpenGL ES、ffmpeg部分。Java/kotlin部分只需要传递一个文件url地址即可实现视频的播放。 相关的坑以及解决的办法: 编译正常但是画面不显示 Surface和EGL没有绑定。解决办法如下: winsurface = eglCreate 阅读全文
posted @ 2025-07-15 14:17 飘杨...... 阅读(58) 评论(0) 推荐(0)
SurfaceView+ANativeWindow+ffmpeg播放视频并解决花屏问题
摘要:一、概述 在Android中使用SurfaceView+ANativeWindow+ffmpeg播放视频非常简单。主要关注一下步骤以及里面的坑就行 步骤: 创建一个Activity并写一个自定的View继承SurfaceView,并重写SurfaceHolder.Callback的onSurface 阅读全文
posted @ 2025-07-15 13:50 飘杨...... 阅读(57) 评论(0) 推荐(0)
OpenGL模型变换平移、缩放、旋转注意事项
摘要:一、概述 在OpenGL中,想要对物体(模型)进行操作,如:平移、缩放、旋转。其顺序不能错,不同的顺序会给出不同的结果 网上的博客大家看过后要慎重使用,好多都是错误的,在实际项目中使用前最好先写demo进行验证,不然一旦整合到项目中,排错成本将会非常高。 三者的顺序是: 理论:先缩放、再旋转、然后平 阅读全文
posted @ 2024-10-18 11:44 飘杨...... 阅读(453) 评论(0) 推荐(0)
标准坐标系、屏幕坐标系、纹理坐标系、FBO坐标系
摘要:一、概述 介绍一下常用的标准坐标系 1.标准坐标系 2.屏幕坐标系 3.纹理坐标系 4.FBO坐标系 阅读全文
posted @ 2024-09-09 17:23 飘杨...... 阅读(63) 评论(0) 推荐(0)
OpenGL ES使用正交投影来解决图像变形的问题
摘要:一、概述 上一节实践了,通过改变GLSurfaceView的宽高来解决图像变形的问题。 本节将通过正交投影的方式解决图像变形的问题。 分三步: 1.计算屏幕的宽高比及图像的宽高比 var screenRatio = screenWidth.toFloat() / screenHeight var i 阅读全文
posted @ 2024-09-09 16:51 飘杨...... 阅读(315) 评论(0) 推荐(0)
OpenGL ES通过缩小GLSurfaceView来解决纹理贴图变形的问题
摘要:一、概述 在使用OpenGL ES做纹理贴图的时候,图片有小有大。默认情况下纹理是撑满整个屏幕的。 这就导致大图会被压扁、小图会被拉伸。这种体验相当不好。 解决此问题的其中一种方式是:通过缩小GLSurfaceView的宽或高来解决问题。ps:公式可以看做是固定的,直接使用即可。 1.根据屏幕及图像 阅读全文
posted @ 2024-09-09 16:42 飘杨...... 阅读(197) 评论(0) 推荐(0)
错误 C2872 “ACCESS_MASK”: 不明确的符号
摘要:一、概述 在使用Qt5.x的OpenGLWidget + OpenCV时出现了 错误 C2872 “ACCESS_MASK”: 不明确的符号 二、解决办法 在Qt项目的根Window中的头文件的顶部加入 #include<windows.h> 阅读全文
posted @ 2024-08-13 10:47 飘杨...... 阅读(434) 评论(0) 推荐(0)
android使用opengles渲染一张图片
摘要:一、概述 案例:使用opengles+egl渲染一张图片 关键类介绍: 1.新建一个DrawPictureActivity.java用于充当显示容器:初始化SurfaceView并设置SurfaceView的callback回调函数。并在其onSurfaceCreated函数中对DrawPictur 阅读全文
posted @ 2021-11-19 10:09 飘杨...... 阅读(1879) 评论(0) 推荐(0)
Fatal signal 4 (SIGILL), code 1 (ILL_ILLOPC), fault addr 0xc5614e64 in tid 22126 (w.ywmediaplayer),
摘要:一、概述 案例场景:在使用opengles+egl+surfaceview实现纹理贴图的时候出现的异常。 二、解决办法 原因:在报错位置的方法内,为加上return,因为此方法是明确指定要有返回值的,结果写的时候忘记了。而难受的是编译通过,运行报错。 阅读全文
posted @ 2021-11-17 14:42 飘杨...... 阅读(2530) 评论(0) 推荐(0)
android opengles绘制三角形(四边形)
摘要:一、概述 案例:编写一个opengles程序绘制一个三角形、四边形。其中opengles上下文环境及窗口管理由我们自己来维护。即通过SurfaceView+EGL+OpenGL ES来实现绘制一个三角形(四边形) 制作步骤: 1.创建Activity并为这个Activity创建一个布局,在布局中写一 阅读全文
posted @ 2021-11-17 10:05 飘杨...... 阅读(952) 评论(0) 推荐(0)
Android 最简单的视频播放器之OpenGL ES视频渲染工具封装(三)
摘要:一、概述 OpenGL ES的全称是OpenGL for Embeded System,它是OpenGL的一个子集。其本质上一个一个图形图像处理库。OpenGL ES是优化版,专门针对嵌入式设备的,性能非常的优异。 下面的代码就是利用OpenGL ES 的java api来做视频的渲染工作(主要是操 阅读全文
posted @ 2021-11-03 16:30 飘杨...... 阅读(1332) 评论(0) 推荐(0)
Android最简单的视频播放器之GLSurfaceView+OpenGL ES+MediaCodec硬件解码实现(四)
摘要:一、概述 案例:使用硬件解码MediaCodec+OpenGL ES来实现一个视频播放器。 源码下载 重点概要: 1.音视频文件提取器MediaExtractor 2.音视频硬件解码API MediaCodec 3.视频渲染使用OpenGL ES、音频渲染使用AudioTrack封装的AudioPl 阅读全文
posted @ 2021-11-02 14:09 飘杨...... 阅读(2435) 评论(0) 推荐(0)