function MeShadeBuilder(canvasID) {
	this._viewer = new MeShadeViewer();
	sglRegisterLoadedCanvas(canvasID, this._viewer, 0.0);
}

MeShadeBuilder.prototype = {
	get glContext() {
		return this._viewer.glContext;
	},

	get onload() {
		return this._viewer.onload;
	},

	set onload(f) {
		this._viewer.onload = f;
		this.refresh();
	},

	get drawTriad() {
		return this._viewer.drawTriad;
	},

	set drawTriad(value) {
		this._viewer.drawTriad = value;
		this.refresh();
	},

	get drawBBox() {
		return this._viewer.drawBBox;
	},

	set drawBBox(value) {
		this._viewer.drawBBox = value;
		this.refresh();
	},

	setBackgroundColor : function (r, g, b) {
		return this._viewer.setBackgroundColor(r, g, b);
	},

	getBackgroundColor : function () {
		return this._viewer.getBackgroundColor();
	},

	resetView : function () {
		return this._viewer.resetView();
	},

	loadMesh : function (url) {
		return this._viewer.loadMesh(url);
	},

	unloadMesh : function () {
		return this._viewer.unloadMesh();
	},

	get meshLoaded() {
		return this._viewer.meshLoaded;
	},

	getMeshInfo : function () {
		return this._viewer.getMeshInfo();
	},

	validateProgramSources : function (vsrc, fsrc) {
		return this._viewer.validateProgramSources(vsrc, fsrc);
	},

	setProgramSources : function (vsrc, fsrc) {
		return this._viewer.setProgramSources(vsrc, fsrc);
	},

	getProgramSources : function () {
		return this._viewer.getProgramSources();
	},

	get programCompiled() {
		return this._viewer.programCompiled;
	},

	getProgramLog : function () {
		return this._viewer.getProgramLog();
	},

	getProgramUniforms : function () {
		return this._viewer.getProgramUniforms();
	},

	getProgramSamplers : function () {
		return this._viewer.getProgramSamplers();
	},

	getPredefinedUniforms : function () {
		return this._viewer.getPredefinedUniforms();
	},

	getPredefinedAttributes : function () {
		return this._viewer.getPredefinedAttributes();
	},

	setUniforms : function (u) {
		return this._viewer.setUniforms(u);
	},

	setSamplers : function (s) {
		return this._viewer.setSamplers(s);
	},

	refresh : function () {
		return this._viewer.refresh();
	},

	buildPage : function () {
		return this._viewer.buildPage();
	}
};

