Haxe 语言 实战案例WebGL图表绘制

Haxe阿木 发布于 24 天前 2 次阅读


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