【WebGL系列-01】获取WebGL上下文
获取WebGL上下文
获取上下文
WebGL上下文是从<canvas>标签中获取到的,通过canvas对象的getContext()函数可以获取WebGLRenderingContext。
跟据参数的不同,getContext()函数可以获取不同种类的渲染上下文。
接口
canvas.getContext(contextType: String, contextAttributes ?: Object)
contextType:'2d':建立一个CanvasRenderingContext2D二维渲染上下文'webgl'或'experimental-webgl':创建一个WebGLRenderingContext三维上下文对象,只在实现WebGL1的浏览器上可用'webgl2'或'experimental-webgl2':创建一个WebGL2RenderingContext三维渲染上下文对象,只在实现WebGL2的浏览器上可用'bitmaprenderer':创建一个只提供将canvas内容替换为指定ImageBitmap功能的ImageBitmapRenderingContext
contextAttributes:当
contextType为2d时:alpha:boolean,表明canvas包含一个alpha通道。如果设置为false,浏览器默认canvas背景总是不透明的,可加速绘制透明物体willReadFrequently (Gecko only):boolean,表示是否有重复读取计划。经常使用getImageData()会导致软件使用2D canvas并节省内存,适用于存在属性gfx.canvas.willReadFrequently的环境storage (Blink only):string,表示使用哪种方式存储,默认为"presistent"持久性存储
当使用webgl上下文时:
alpha:boolean,表明canvas包含一个alpha缓冲区antialias:boolean,表明是否开启抗锯齿depth:boolean,表明绘制缓冲区包含一个深度至少为16位的缓冲区failIfMajorPerformanceCaveat:表明在一个系统性能低的环境是否创建该上下文的boolean值powerPreference:指示浏览器在运行webgl上下文时使用相应的GPU电源配置,可能的值有"default":默认,自动选择"high-performance":高性能模式"low-power":节能模式
premultipliedAlpha:boolean,表明排版引擎将假设绘制缓冲区包含预混合alpha通道preserveDrawingBuffer:boolean,如果为true,缓冲区将不会被清除,会保存袭来,直到被清除或被覆盖stencil:boolean,表明绘制缓冲区包含一个深度至少为8为的模板缓冲区
当要获取一个上下文对象的contextAttributes时,可以使用接口context.getContextAttributes()来获取
返回值
CanvasRenderingContext2D:当ContextType为"2d"WebGLRenderingContext:当ContextType为"webgl"或"experimental-webgl"WebGL2RenderingContext:当ContextType为"webgl2"或"experimental-webgl2"ImageBitmapRenderingContext:当ContextType为"bitmaprenderer"
获取上下文事件
canvas获取上下文会触发以下事件:
contextlost (experimental):当获取的CanvasRenderingContext2D上下文丢失时会触发contextrestored (experimental):在用户代理恢复CanvasRenderingContext2D时会触发webglcontextcreatingerror:在用户无法创建WebGLRenderingContext上下文时触发webglcontextlost:在用户代理检测到绘制缓冲关联的WebGLRenderingContext上下文丢失时会触发
-webglcontextrestored:在用户代理恢复WebGLRenderingContext对象的绘制缓冲时会触发
【WebGL系列-01】获取WebGL上下文的更多相关文章
- 学废了系列 - WebGIS vs WebGL图形编程
目前工作中有不少涉及到地图的项目,我参加了几次技术评审,前端伙伴们在 WebGIS 方面的知识储备稍有不足,这次分享的主要目的是科普一些在前端领域比较常用的 WebGIS 知识.另外,我之前的工作中积 ...
- webgl 系列 —— 绘制猫
其他章节请看: webgl 系列 绘制猫 上文我们了解了如何绘制渐变彩色三角形,明白了图形装配.光栅化,以及片元着色器计算片元的颜色. 现在如果让你绘制如下一只猫.难道绘制很多三角形,然后指定它们的颜 ...
- webgl 系列 —— 变换矩阵和动画
其他章节请看: webgl 系列 变换矩阵和动画 动画就是不停地将某个东西变换(transform).例如将三角形不停地旋转就是一个动画 和 CSS transform 类似,变换有三种形式:平移.缩 ...
- webgl 系列 —— 渐变三角形
其他章节请看: webgl 系列 渐变三角形 本文通过一个渐变三角形的示例逐步分析:varying变量.合并缓冲区.图形装配.光栅化.varying 内插 绘制三个点v1 需求:绘制三个相同颜色的点, ...
- webgl 系列 —— 着色器语言
其他章节请看: webgl 系列 着色器语言 本篇开始学习着色器语言 -- GLSL全称是 Graphics Library Shader Language (图形库着色器语言) GLSL 是一门独立 ...
- WebGL入门教程(二)-webgl绘制三角形
前面已经介绍过了webgl,WebGL入门教程(一)-初识webgl(http://www.cnblogs.com/bsman/p/6128447.html),也知道了如何绘制一个点,接下来就用web ...
- WebGL入门教程(五)-webgl纹理
前面文章: WebGL入门教程(一)-初识webgl WebGL入门教程(二)-webgl绘制三角形 WebGL入门教程(三)-webgl动画 WebGL入门教程(四)-webgl颜色 这里就需要用到 ...
- WebGL入门教程(四)-webgl颜色
前面文章: WebGL入门教程(一)-初识webgl WebGL入门教程(二)-webgl绘制三角形 WebGL入门教程(三)-webgl动画 颜色效果图: 操作步骤: 1.创建HTML5 canva ...
- java io系列01之 "目录"
java io 系列目录如下: 01. java io系列01之 "目录" 02. java io系列02之 ByteArrayInputStream的简介,源码分析和示例(包括 ...
- SAP接口编程 之 JCo3.0系列(01):JCoDestination
SAP接口编程 之 JCo3.0系列(01):JCoDestination 字数2101 阅读103 评论0 喜欢0 JCo3.0是Java语言与ABAP语言双向通讯的中间件.与之前1.0/2.0相比 ...
随机推荐
- [操作系统] - 进程切换&进程控制
2.1.6 进程切换 名称解析 进程的上下文(Context) 当一个进程在执行时,CPU的所有寄存器的值.进程的状态以及堆栈中的内容被称为进程的上下文Context 进程的切换(switch) 当内 ...
- vue2路由导航守卫(钩子函数)
https://router.vuejs.org/zh/guide/advanced/navigation-guards.html#%E5%85%A8%E5%B1%80%E5%89%8D%E7%BD% ...
- Django笔记三十五之admin后台界面介绍
本文首发于公众号:Hunter后端 原文链接:Django笔记三十五之admin后台界面介绍 这一篇介绍一下 Django 的后台界面使用. Django 自带了一套后台管理界面,可用于我们直接操作数 ...
- Layui 2.8.0 正式发布,官网全新文档站朴实归来
前言 两年前 Layui 官网宣布了下线声明,说实话当时内心确实感慨万千毕竟这个免费为我们后端程序员提供的一个前端快熟开发框架的官网就这样下线了确实十分的惋惜,但是庆幸的是官网的下线,只是单纯一个网站 ...
- mapper中sql返回类型是integer,但是sql查询结果是null,报错
1.出问题代码 当sql返回结果为null时报错 org.apache.ibatis.binding.BindingException: Mapper method 'com.yswl.scie ...
- 2021-04-15:给定一个由字符串组成的数组strs,必须把所有的字符串拼接起来,返回所有可能的拼接结果中,字典序最小的结果。
2021-04-15:给定一个由字符串组成的数组strs,必须把所有的字符串拼接起来,返回所有可能的拼接结果中,字典序最小的结果. 福大大 答案2021-04-15: "b"和&q ...
- 记一次 .NET 某医院门诊软件 卡死分析
一:背景 1. 讲故事 前几天有位朋友找到我,说他们的软件在客户那边卡死了,让我帮忙看下是怎么回事?我就让朋友在程序卡死的时候通过 任务管理器 抓一个 dump 下来,虽然默认抓的是 wow64 ,不 ...
- 《啊哈C语言——逻辑的挑战》学习笔记
第一章 梦想启航 第1节 让计算机开口说话 1.基础知识 1)计算机"说话"的两种方式 显示在屏幕上 通过喇叭发出声音 2)计算机"说话"之显示在屏幕上 格式: ...
- [abc279 G] At Most 2 Colors
G - At Most 2 Colors (atcoder.jp) 重点讲解方法三,因为方法三是蒟蒻都能想出来的方法一和方法二都可以借助方法三的思想推出 方法一 这是最简单的设置状态的方法,\(dp[ ...
- odoo开发教程四:onchange、唯一性约束
一:onchange机制[onchange=前端js函数!可以实现前端实时更新以及修改验证] onchange机制:不需要保存数据到数据库就可以实时更新用户界面上的显示. @api.onchange( ...