《TypeScript图形渲染实战:2D架构设计与实现》 —3.2.11 Canvas2DApplication子类和We
【摘要】 本节书摘来自华章计算机《TypeScript图形渲染实战:2D架构设计与实现》 一书中第3章,第3.2.11节,作者是步磊峰。
3.2.11 Canvas2DApplication子类和WebGLApplication子类
Canvas2DApplication子类和WebGLApplication子类其实很简单,可以从Application中的public成员变量canvas中调用getContext方法,根据不同的实参获取CanvasRendering Context2D对象或WebGLRenderingContext对象。具体代码如下:
export class Canvas2DApplication extends Application {
public context2D : CanvasRenderingContext2D | null ;
public constructor ( canvas : HTMLCanvasElement , contextAttributes :
Canvas2DContextAttributes ) {
super( canvas ) ;
this . context2D = this . canvas . getContext( "2d" , context
Attributes ) ;
}
}
export class WebGLApplication extends Application {
public context3D : WebGLRenderingContext | null ;
public constructor ( canvas : HTMLCanvasElement , contextAttributes :
WebGLContextAttributes ) {
super( canvas ) ;
this . context3D = this . canvas . getContext( "webgl" , context
Attributes ) ;
if ( this . context3D === null ) {
this . context3D = this . canvas . getContext("experimental-
webgl" , contextAttributes ) ;
if ( this . context3D === null ) {
alert ( " 无法创建WebGLRenderingContext上下文对象 " ) ;
throw new Error ( "无法创建WebGLRenderingContext上下文对象" ) ;
}
}
}
}
这两个类实际上仅仅是获取2D / 3D渲染上下文对象,如果要进行具体的渲染逻辑,那么可以继续继承,然后进行相关业务逻辑的扩展,后面的章节会使用Canvas2D Application类,到时候再详细地了解相关细节。
至此,Application及子类都介绍完毕,下一节来测试一下Application类是否有效。
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)