- 博客(205)
- 资源 (2)
- 收藏
- 关注

原创 OpenGL ES 2.0 中文API
大部分都是谷歌翻译的,只是自己看API的时候顺便将其翻译的结果整理了一下,贴出来方便自己以后看,他人可以看,看到有问题的翻译可以指点。glActiveTextureglAttachShaderglBindAttribLocationglBindBufferglBindFramebufferglBindRenderbufferglBindTextureglBlendColorglBlendEqu...
2018-12-04 12:09:12
12766
10

原创 gles小注意
8.尽量使用VBO。glVertexAttribPointer***传输的数据不是VBO指针的话,那传输的数据越多,耗时越多;除了耗时,这个函数每次调用还会把CPU的数据拷贝一份到GPU,消耗带宽,使用VBO的话可以直接将这份数据cache到GPU,下次就不用再次拷贝了,从而节约了带宽,也就节省了用电。 7.glClear(...)也是会耗时2ms~9ms左右的。所以在效果不影响的...
2017-04-21 15:53:42
1132
1

原创 gles中片元着色器常用
5.随机http://byteblacksmith.com/improvements-to-the-canonical-one-liner-glsl-rand-for-opengl-es-2-0/float rand(vec2 co){ return fract(sin(dot(co.xy,vec2(12.9898,78.233))) * 43758.5453);}...
2017-02-18 16:52:10
495

原创 adb git 常用命令
还是像eclipse快捷键一样,遇到一个加一个一、Linux 1、进入下一目录:cd eg: cd work 进入work文件夹 2、遍历该目录下的文件:直接使用ls2.1、ls -a 遍历该目录下的所有文件,包括隐藏的文件和文件夹 like.. .. dandy2.2、列出详细信息 ls -al 总用量...
2014-06-05 20:47:52
492
原创 记一次Android cpp文件编译的so文件总是找不到:dlopen failed:library “***.so” not found
近期修改一个1年前的Android项目,其内有c++文件在一个module中,之前都是直接可以编译成so文件到aar包中。放在项目中也能直接运行。但是今天重新编译却总是报错:java.lang.UnsatisfiedLinkError: dlopen failed: library "***.so" not found.代码没有更改过,只是AS环境有升级。将代码放到原始的旧项目中发现可以正常执行。对比之后发现是gradle版本信息问题。新版本(异常)build.grad...
2021-01-18 16:49:42
5118
原创 Android生成文件失败:java.lang.IllegalStateException:Failed to build unique file: /storage/emulated/0/...
1.问题说明Android Q上,生成同一个名称的文件(类型+年月日),一开始好好的,突然有一天就报错了:java.lang.IllegalStateException:Failed to build unique file: /storage/emulated/0/...2.问题追踪因为同一名称的文件会被系统在默认添加(1...)等数字用以标识,例如我有一个aa.txt文件,当我要再次生成aa.txt时,系统会帮我生成aa (1).txt文件,再生成则是aa (2).txt。单从代码和
2020-06-16 23:00:23
4987
5
原创 Android Canvas : 2 基础绘制
目录2.1 基础图元绘制2.2 Paint设置2.3Bitmap2.4旋转/平移/缩放/斜切2.4.1 旋转(rotate)2.4.2 平移(translate)2.4.3 缩放(scale)2.4.4 斜切(skew)2.1 基础图元绘制由Canvas的draw相关的API可以看到其可以绘制一些基础图元如点、线、圆、矩形、圆角矩形、弧形、文字、Bitm...
2020-06-15 00:45:56
563
原创 记一次Android Q使用MediaStore删除文件失败的过程
问题描述:在Android Q上使用MediaStore创建了一个音频文件test1.mp3保存到sdcard/Music/flycat目录下(保存过程省略...)。然后用MediaStore去查询该音频文件的Uri,记为uri1。最后删除:context.getContentResolver.delete(uri1,null,null),此时删除成功。假设我同上步骤创建了test1.mp...
2020-04-18 16:42:15
2276
1
原创 Android Kotlin: RuntimeException: Unable to instantiate activity ComponentInfo{...}
今天想尝试一下kotlin写个Android Demo, 结果运行总是直接crash,报以下错:java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.***.demo/com.***.demo.android.**Activity}: java.lang.ClassNotFoundExcepti...
2020-04-05 00:02:52
1070
2
原创 Android Canvas : 1 基础介绍
目录1.1 是什么?1.2 与Surface的区别与联系1.3 底层实现1.3.2 追踪证明参考1.1 是什么?Android中Canvas类常用于自定义View等操作中,canvas则如同一张画布可以在上面绘制内容,然后这张画布也可以叠加其他的图层或者平移旋转等操作。Canvas对象的获取方式有两种:一种我们通过重写View.onDraw方法,View中的Canv...
2019-11-23 17:42:24
1292
翻译 Vulkan应用开发指南 第一章 概述 1.2 实例、设备和队列
1.2 实例、设备和队列Vulkan包含了一个层级化的功能结构,从顶级开始是实例,实例聚集了所有支持Vulkan的设备。每个设备提供了一个或多个队列,这些队列执行应用程序请求的工作。Vulkan实例是一种软件构造,它在逻辑上将应用程序的状态与在应用程序上下文中运行的其他应用程序或库分开。系统中的物理设备(每个都具有某些功能)表示为实例的成员,包括一组可用队列。物理设备通常表示一个单独的...
2019-07-03 23:33:06
935
原创 OpenGL ES 2.0 着色器语言规范
5 操作符和表达式 5.1 操作符 5.2数组下标 5.3函数调用 5.4 构造器(构造函数) 5.4.1 转换和标量构造器 5.4.2向量和矩阵构造器 5.4.3结构体构造器 5.5 向量组件6 陈述和结构 6.1 函数定义 6.1.1 函数调用惯例 6.2 选...
2019-07-03 22:27:14
683
翻译 Vulkan应用开发指南 第一章 概述 1.1引言
目录第一章 概述1.1 引言第一章 概述你将在本章学到什么Vulkan是什么以及它背后的原理 如何创建最小的Vulkan应用程序 本书其余部分将要使用到的术语和概念在本章中,我们将介绍Vulkan并解释它是什么。我们将介绍API背后的一些基本概念,包括初始化,对象生命周期,Vulkan实例以及逻辑和物理设备。在本章结束时,我们将生成一个简单的Vulkan应用程序,可以初始...
2019-07-03 00:30:07
1240
原创 AndroidOpenGLESDemos glReadPixel读取当前缓冲区像素并保存成Bitmap
目录一、效果二、说明三、关键代码四、相关参考五、代码地址一、效果 二、说明如上图,左上角是一个GLSurfaceView,中间是一个按钮,左下角是一个ImageView(初始显示颜色为黑色);当点击按钮之后,利用OpenGL的API glReadPixels可以将当前GL渲染缓冲区中的颜色获取并可以保存为Bitmap。三、关键代码glReadP...
2019-06-05 00:50:13
5178
原创 AndroidOpenGLESDemos Hello World-GLSurfaceView 显示背景色
目录一、效果二、GLSurfaceView三、渲染四、注意五、相关参考六、代码地址一、效果二、GLSurfaceViewGLSurfaceView从Android 1.5(API level 3)开始加入,继承自SurfaceView,实现了SurfaceHolder.Callback2接口,拥有SurfaceView的全部特性,也有view所有的功能和属性...
2019-04-23 00:25:39
1330
1
翻译 OpenGL ES着色器语言规范 5 操作符和表达式(5.5 向量组件)
目录5.5 向量组件5.5 向量组件向量中每个组件的名称都使用一个单独的字符来表示。常用的位置,颜色,或者纹理坐标向量的组件直接和几个便利的数字相关联。访问向量中的组件可以使用向量名(.)组件名的方式.支持的组件名称如下:{x, y, z, w} 在访问表示点或法线的向量时很有用。 {r, g, b, a} 访问表示颜色的向量时很有用。 {s, t, p, ...
2019-04-08 22:05:21
413
翻译 OpenGL ES着色器语言规范 5 操作符和表达式(5.4 构造器)
目录5.4 构造器(构造函数)5.4.1 转换和标量构造器5.4.2向量和矩阵构造器5.4.3结构体构造器5.4 构造器(构造函数)构造函数使用函数调用语法,其中函数名称是基本类型关键字或结构名称,以生成在初始化程序或表达式中使用的所需类型的值。 (有关详细信息,请参见第9节“着色语言语法”。)参数用于初始化构造的值。构造函数可用于请求数据类型转换从一种标量类型更改为另...
2019-04-03 00:15:27
372
翻译 OpenGL ES着色器语言规范 5 操作符和表达式(5.1-5.3)
目录5 操作符和表达式5.1 操作符5.2数组下标5.3函数调用5 操作符和表达式5.1 操作符OpenGL ES着色语言具有以下运算符。优先级 操作说明 操作符 顺序 1(最高) 括号分组 ( ) NA 2 数组下标 函数调用和构造器 成员选择与混合 自加1 自减1 后缀 ...
2019-04-02 23:39:37
651
翻译 OpenGL ES着色器语言规范 10 常见问题(34)
目录10.34提高最低要求10.34提高最低要求自版本1.00发布以来,很明显所有实现都支持超过最低要求。一些实现远远超出了最小值。最低要求不包括能够使用循环索引索引数组,这是一个非常有用的功能。作为语言规范的一部分但超出最小值的特征应该如何暴露?选择1:什么都不做。 应用程序可以通过尝试编译来测试特定功能的存在。 如果不支持,编译将失败。这被认为是不令人满意的,因...
2019-03-24 01:36:14
369
翻译 OpenGL ES着色器语言规范 10 常见问题(30-33)
目录10.30 运算符精度10.31 编译器转换10.32 在预处理器中扩展类函数宏10.33 扩展宏是否应在全局范围内定义?10.30 运算符精度是否应该定义add和multiply等操作的精度?这些不是由C ++标准定义的,但通常假设C ++实现将使用IEEE 754算法。对于通常仅支持IEEE 754的子集的GPU而言,情况并非如此。此外,诸如超越函数的许多操作被...
2019-03-24 01:09:45
889
翻译 OpenGL ES着色器语言规范 10 常见问题(25-29)
目录10.25 动态索引10.26 纹理单元的最大数量10.27 目标错误报告10.28 整数出发的舍入10.29 未定义的返回值10.25 动态索引某些实现不直接支持数组,向量和矩阵的动态索引。程序转换时是可以的,但性能会降低。是否应该从规范中删除数组的动态索引?A:保持统一变量的动态索引(用于蒙皮)。 删除临时(在限制部分)。是否应从规范中删除...
2019-03-24 00:41:52
341
翻译 OpenGL ES着色器语言规范 10 常见问题(19-24)
目录10.19 着色器中的不变性10.20 循环声明10.21 着色器之间的交叉链接10.22 声明的可见性10.23 语言版本10.24 采样器10.19 着色器中的不变性如何指定着色器中的不变性?编译器可能决定重新计算值而不是将其存储在寄存器中。 新值可能与原始值不完全相同。选项1:禁止此行为。选项2:对变量使用不变性限定符来控制它。 这与桌面一致...
2019-03-21 01:26:32
316
翻译 OpenGL ES着色器语言规范 10 常见问题(17-18)
目录10.17 无尺寸的数组声明10.18 不变性10.17 无尺寸的数组声明Desktop GLSL允许在没有大小的情况下声明数组,然后可以使用常量下标表达式访问这些数组。大小永远不需要声明。 这是为了支持gl_Texcoord,例如:varying vec4 gl_TexCoord[];...gl_FragColor = texture2D (tex, gl_...
2019-03-18 23:40:17
507
翻译 OpenGL ES着色器语言规范 10 常见问题(14-16)
目录10.14 预处理器10.15 编译制阶段10.16 易变变量的最大个数10.14 预处理器预处理器是否必要? 扩展机制依赖于预处理器,因此需要更换。#define,#ifdef,#ifdef,#elsif和#endif结构通常用于管理不同版本和包含防护。宏,特别是参数化宏被认为没什么用,因为它们应该被常量和函数替换。它们仍然常用于C程序中,因此在GLSL ES中可能存在类...
2019-03-18 00:24:35
460
翻译 OpenGL ES着色器语言规范 10 常见问题(10-13)
目录10.10 重新定义内置函数10.11 常量表达式10.12 易变变量链接10.13 gl_Position10.10 重新定义内置函数如果重新定义内置函数,新函数是否应隐藏所有具有相同名称的内置函数?A:是的,这遵循c ++规则。 然后,内置函数位于“外部”范围内,全局范围嵌套在此范围内。这特征有用吗? 内置函数可能有效地映射到硬件。 用户定义的函数可...
2019-03-17 22:11:06
380
翻译 OpenGL ES着色器语言规范 10 常见问题(4-9)
目录10.5本地函数声明和函数隐藏10.6 重载main()10.7 错误报告10.8 结构声明10.9 嵌入式结构定义10.4函数和变量名称空间Q:变量和函数是否共享相同的名称空间? GLSL ES不支持函数指针,因此可以始终使用语法来区分不同的情形。 所以这与C ++还是不同的。A:函数和变量可以共享相同的名称空间。是否允许在同一范围内重新声明相同的名...
2019-03-17 01:10:55
353
原创 OpenGL ES着色器语言规范 10 常见问题(1-3)
目录10 常见问题10.1 顶点着色器精度10.2片段着色器精度10.3 精度限定符10 常见问题10.1 顶点着色器精度Q:最小精度应该是(相当于)float 24还是float 32?A:最小精度为float 24.将鼓励底层实现使用float 32。10.2片段着色器精度Q:最小精度应该是(相当于)float 16还是float 24?需要flo...
2019-03-05 00:31:04
727
翻译 OpenGL ES着色器语言规范 9 着色语言语法
目录9 着色语言语法9 着色语言语法语法是从词法分析的输出获得的。词法分析将返回以下标识:ATTRIBUTE CONST BOOL FLOAT INTBREAK CONTINUE DO ELSE FOR IF DISCARD RETURNBVEC2 BVEC3 BVEC4 IVEC2 IVEC3 IVEC4 VEC2 VEC3 VEC4MAT2 MAT3 MAT4 ...
2019-02-28 00:23:30
560
翻译 OpenGL ES着色器语言规范 8 内建函数
目录8 内建函数8.1 角度和三角函数8.2 指数函数8.3 常用函数8.4 几何函数8.5 矩阵函数8.6 向量相关函数8.7 纹理查找函数8 内建函数OpenGL ES着色语言为标量和向量操作定义了一套内建便利函数。有些内建函数可以用在多个类型的着色器中,有些是针对固定硬件的,所以这部分只能用在某个特定的着色器上。内建函数基本上可以分为一下三...
2019-02-26 01:15:04
849
翻译 OpenGL ES着色器语言规范 7 内建变量
版权声明:本文为flycatdeng原创文章或译文,转载请加上链接和作者名 https://blog.youkuaiyun.com/flycatdeng目录7 内建变量7.1 顶点着色器特殊变量7.2 片段着色器特殊变量7.3 顶点着色器内置属性7.4 内建常量7.5 内置统一状态7 内建变量一些OpenGL ES操作仍然在顶点处理器和片段处理器之间的固定功能中继续发生。在...
2019-02-25 00:29:31
601
翻译 OpenGL ES着色器语言规范 6.4 跳转
目录6.4 跳转6.4 跳转以下为跳转关键字:jump_statement: continue; break; return; return expression; discard; // 仅在片元着色器中使用没有“goto”也没有其他非结构化的控制流程。continue跳转仅用于循环,它会跳过它内部最内圈的剩余部分。对于whil...
2019-02-18 00:54:24
428
翻译 OpenGL ES着色器语言规范 6.3 迭代
目录6.3 迭代6.3 迭代for、while、do-while 可以使用迭代如下:for (for-init-statement; condition(opt); expression) statement-no-new-scopewhile (condition) statement-no-new-scopedo statementwh...
2019-02-17 23:55:38
347
翻译 OpenGL ES着色器语言规范 6.2 选择
目录6.2 选择6.2 选择着色语言中的条件控制流由if或if-else完成:if (bool-expression) true-statement或if (bool-expression) true-statementelse false-statement如果表达式的值是true,则 true-statement将会被执行。如果...
2019-02-17 22:24:44
341
翻译 OpenGL ES着色器语言规范 6.1 函数定义
目录6.1 函数定义6.1.1 函数调用惯例6.1 函数定义如上面的语法所示,有效着色器是一系列全局声明和函数定义。 声明一个函数,如下例所示:// prototypereturnType functionName (type0 arg0, type1 arg1, ..., typen argn);而函数定义如下:// definitionreturnType...
2019-02-09 18:44:00
483
翻译 OpenGL ES着色器语言规范 6 陈述和结构
目录6 陈述和结构6 陈述和结构OpenGL ES着色语言的基本构建块是:陈述和声明 方法名定义 选择(if-else) 迭代(for,while和do-while) 跳转(discard, return, break, 和continue)编译单元的总体结构如下translation-unit: global-declarationtranslation-...
2019-02-08 20:53:48
309
翻译 GLES2.0中文API-glGet
名称glGet - 返回所选参数的值C规范void glGetBooleanv( GLenum pname, GLboolean * params);void glGetFloatv( GLenum pname, GLfloat * params);void glGetIntegerv( GLenum pname, GLint *...
2018-12-04 12:05:58
3115
翻译 GLES2.0中文API-glGetVertexAttrib
名称glGetVertexAttrib - 返回通用顶点属性参数C规范void glGetVertexAttribfv( GLuint index, GLenum pname, GLfloat *params);void glGetVertexAttribiv( GLuint index, GLenum pname, GLint *...
2018-12-03 19:45:09
1314
翻译 GLES2.0中文API-glGetVertexAttribPointerv
名称glGetVertexAttribPointerv - 返回指定的通用顶点属性指针的地址C规范void glGetVertexAttribPointerv( GLuint index, GLenum pname, GLvoid **pointer);参数index指定要返回的通用顶点属性参数。pname指定要返回的通用顶点属性参数的符号...
2018-12-03 19:27:52
1361
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人