Haxe 语言实战案例:WebGL 图表绘制
Haxe 是一种多平台编程语言,它允许开发者用一种语言编写代码,然后编译成多种平台的原生代码。这种语言的灵活性使得它在游戏开发、移动应用和Web开发等领域都有广泛的应用。本文将围绕Haxe语言,通过一个实战案例——WebGL图表绘制,来探讨如何使用Haxe进行WebGL编程。
前言
WebGL 是一种用于在网页上创建和显示3D图形的技术。它允许开发者使用JavaScript和HTML5来创建交互式的3D图形,而不需要任何插件。Haxe语言通过其WebGL库,使得开发者可以使用Haxe编写WebGL应用程序。
环境搭建
在开始编写代码之前,我们需要搭建一个Haxe开发环境。以下是搭建Haxe开发环境的步骤:
1. 下载并安装Haxe编译器。
2. 安装Haxe的WebGL库。
3. 配置Web服务器。
实战案例:WebGL图表绘制
在这个案例中,我们将使用Haxe语言和WebGL技术来绘制一个简单的图表,例如柱状图或折线图。
1. 创建项目结构
我们需要创建一个Haxe项目,并设置项目结构。以下是一个简单的项目结构示例:
project/
│
├── src/
│ ├── Main.hx/
│ ├── Chart.hx/
│ └── ChartRenderer.hx/
│
└── index.html
2. 编写Haxe代码
Main.hx
```haxe
package;
import haxe.webgl.WebGL;
import haxe.webgl.Context;
import haxe.webgl.Canvas2D;
import haxe.webgl.Mesh;
import haxe.webgl.MeshBuffer;
import haxe.webgl.MeshBufferType;
import haxe.webgl.MeshBufferUsage;
import haxe.webgl.MeshBufferFormat;
import haxe.webgl.MeshBufferTarget;
import haxe.webgl.MeshBufferVertex;
import haxe.webgl.MeshBufferElement;
import haxe.webgl.MeshBufferVertexAttribute;
import haxe.webgl.MeshBufferVertexAttributeType;
import haxe.webgl.MeshBufferVertexAttributeNormalize;
import haxe.webgl.MeshBufferVertexAttributeStride;
import haxe.webgl.MeshBufferVertexAttributeOffset;
import haxe.webgl.MeshBufferVertexAttributePointer;
import haxe.webgl.MeshBufferVertexAttributePointerType;
import haxe.webgl.MeshBufferVertexAttributePointerStride;
import haxe.webgl.MeshBufferVertexAttributePointerOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset;
import haxe.webgl.MeshBufferVertexAttributePointerStrideOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffsetOffset
Comments NOTHING