зеркало из https://github.com/mozilla/pjs.git
250 строки
11 KiB
Plaintext
250 строки
11 KiB
Plaintext
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* ***** BEGIN LICENSE BLOCK *****
|
|
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
|
*
|
|
* The contents of this file are subject to the Mozilla Public License Version
|
|
* 1.1 (the "License"); you may not use this file except in compliance with
|
|
* the License. You may obtain a copy of the License at
|
|
* http://www.mozilla.org/MPL/
|
|
*
|
|
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
* for the specific language governing rights and limitations under the
|
|
* License.
|
|
*
|
|
* The Original Code is canvas 3D.
|
|
*
|
|
* The Initial Developer of the Original Code is
|
|
* Mozilla Corporation.
|
|
* Portions created by the Initial Developer are Copyright (C) 2006
|
|
* the Initial Developer. All Rights Reserved.
|
|
*
|
|
* Contributor(s):
|
|
* Vladimir Vukicevic <vladimir@pobox.com>
|
|
*
|
|
* Alternatively, the contents of this file may be used under the terms of
|
|
* either of the GNU General Public License Version 2 or later (the "GPL"),
|
|
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
|
* in which case the provisions of the GPL or the LGPL are applicable instead
|
|
* of those above. If you wish to allow use of your version of this file only
|
|
* under the terms of either the GPL or the LGPL, and not to allow others to
|
|
* use your version of this file under the terms of the MPL, indicate your
|
|
* decision by deleting the provisions above and replace them with the notice
|
|
* and other provisions required by the GPL or the LGPL. If you do not delete
|
|
* the provisions above, a recipient may use your version of this file under
|
|
* the terms of any one of the MPL, the GPL or the LGPL.
|
|
*
|
|
* ***** END LICENSE BLOCK ***** */
|
|
|
|
#include "nsICanvasRenderingContextGL.idl"
|
|
#include "nsICanvasRenderingContextGLBuffer.idl"
|
|
|
|
interface nsIDOMHTMLElement;
|
|
|
|
[scriptable, uuid(209a9c93-495e-4085-a3e4-29354b404cc4)]
|
|
interface nsICanvasRenderingContextGLWeb20 : nsICanvasRenderingContextGL
|
|
{
|
|
void activeTexture (in PRUint32 texture);
|
|
|
|
void attachShader (in PRUint32 program, in PRUint32 shader);
|
|
void bindAttribLocation (in PRUint32 program, in PRUint32 index, in string name);
|
|
|
|
void bindBuffer (in PRUint32 target, in PRUint32 buffer);
|
|
void bindTexture (in PRUint32 target, in PRUint32 texid);
|
|
|
|
void blendColor (in float red, in float green, in float blue, in float alpha);
|
|
void blendEquation (in PRUint32 mode);
|
|
void blendEquationSeparate (in PRUint32 modeRGB, in PRUint32 modeAlpha);
|
|
void blendFunc (in PRUint32 sfactor, in PRUint32 dfactor);
|
|
void blendFuncSeparate (in PRUint32 srcRGB, in PRUint32 dstRGB, in PRUint32 srcAlpha, in PRUint32 dstAlpha);
|
|
|
|
|
|
void bufferData (/*in PRUint32 target, in object[] array, in PRUint32 type, in PRUint32 usage*/);
|
|
void bufferSubData (/*in PRUint32 target, in PRUint32 offset, in object[] array, in PRUint32 type*/);
|
|
|
|
void clear (in PRUint32 mask);
|
|
void clearColor (in float red, in float green, in float blue, in float alpha);
|
|
void clearDepth (in float depth);
|
|
void clearStencil (in PRInt32 s);
|
|
void colorMask (in boolean red, in boolean green, in boolean blue, in boolean alpha);
|
|
// NO compressedTexImage2D
|
|
// NO compressedTexSubImage2D
|
|
|
|
void copyTexImage2D (in PRUint32 target, in PRInt32 level, in PRUint32 internalFormat, in PRInt32 x, in PRInt32 y, in PRUint32 width, in PRUint32 height, in PRInt32 border);
|
|
void copyTexSubImage2D (in PRUint32 target, in PRInt32 level, in PRInt32 xoffset, in PRInt32 yoffset, in PRInt32 x, in PRInt32 y, in PRUint32 width, in PRUint32 height);
|
|
|
|
PRUint32 createProgram ();
|
|
PRUint32 createShader (in PRUint32 type);
|
|
void cullFace (in PRUint32 face);
|
|
|
|
void deleteBuffers (/*in PRUint32[] buffers*/);
|
|
void deleteTextures (/*in PRUint32[] textures*/);
|
|
void deleteProgram (in PRUint32 program);
|
|
void deleteShader (in PRUint32 shader);
|
|
void detachShader (in PRUint32 program, in PRUint32 shader);
|
|
void depthFunc (in PRUint32 func);
|
|
void depthMask (in boolean flag);
|
|
void depthRange (in float zNear, in float zFar);
|
|
void disable (in PRUint32 mode);
|
|
void disableVertexAttribArray (in PRUint32 index);
|
|
void drawArrays (in PRUint32 mode, in PRUint32 first, in PRUint32 count);
|
|
void drawElements (/*in PRUint32 mode, in PRUint32 count, in PRUint32 type, in PRUint32[] indices*/);
|
|
void enable (in PRUint32 mode);
|
|
void enableVertexAttribArray (in PRUint32 index);
|
|
void finish();
|
|
void flush();
|
|
void frontFace (in PRUint32 face);
|
|
|
|
// getActiveAttrib returns an object: { name: "..", size: .., type: .. }
|
|
void getActiveAttrib (in PRUint32 program, in PRUint32 index);
|
|
|
|
// getActiveUniform returns an object: { name: "..", size: .., type: .. }
|
|
void getActiveUniform (in PRUint32 program, in PRUint32 index);
|
|
|
|
// returns an array of shader IDs
|
|
void getAttachedShaders (in PRUint32 program);
|
|
|
|
PRInt32 getAttribLocation (in PRUint32 program, in string name);
|
|
|
|
// getBooleanv, getIntegerv, getFloatv, getDoublev, getString
|
|
// are all rolled into a single function that uses scriptable
|
|
// magic to return the right type of jsobj. Colors are always
|
|
// returned as normalized floats (0.0 .. 1.0).
|
|
|
|
void getParameter (in PRUint32 pname);
|
|
void getBufferParameter (in PRUint32 target, in PRUint32 pname);
|
|
|
|
void genBuffers (in PRUint32 n);
|
|
void genTextures (in PRUint32 n);
|
|
|
|
void generateMipmap (in PRUint32 target);
|
|
|
|
PRUint32 getError ();
|
|
|
|
void getProgramParameter (in PRUint32 program, in PRUint32 pname);
|
|
|
|
string getProgramInfoLog (in PRUint32 program);
|
|
|
|
void getTexParameter(in PRUint32 target, in PRUint32 pname);
|
|
|
|
void getUniform (in PRUint32 program, in PRUint32 location);
|
|
PRInt32 getUniformLocation (in PRUint32 program, in string name);
|
|
|
|
void getVertexAttrib (in PRUint32 index, in PRUint32 pname);
|
|
// NO void getVertexAttribPointerv
|
|
|
|
void hint (in PRUint32 target, in PRUint32 mode);
|
|
|
|
boolean isBuffer (in PRUint32 buffer);
|
|
boolean isEnabled (in PRUint32 cap);
|
|
boolean isProgram (in PRUint32 program);
|
|
boolean isShader (in PRUint32 shader);
|
|
boolean isTexture (in PRUint32 texture);
|
|
|
|
void lineWidth (in float width);
|
|
void linkProgram (in PRUint32 program);
|
|
|
|
// NO pixelStore
|
|
|
|
void pixelStore (in PRUint32 pname, in PRInt32 param);
|
|
|
|
void polygonOffset (in float factor, in float units);
|
|
|
|
void readPixels (in PRUint32 x, in PRUint32 y, in PRUint32 width, in PRUint32 height, in PRUint32 format, in PRUint32 type);
|
|
|
|
void sampleCoverage (in float value, in boolean invert);
|
|
void scissor (in PRInt32 x, in PRInt32 y, in PRInt32 width, in PRInt32 height);
|
|
void stencilFunc (in PRUint32 func, in PRInt32 ref, in PRUint32 mask);
|
|
void stencilFuncSeparate (in PRUint32 face, in PRUint32 func, in PRInt32 ref, in PRUint32 mask);
|
|
void stencilMask (in PRUint32 mask);
|
|
void stencilMaskSeparate (in PRUint32 face, in PRUint32 mask);
|
|
void stencilOp (in PRUint32 fail, in PRUint32 zfail, in PRUint32 zpass);
|
|
void stencilOpSeparate (in PRUint32 face, in PRUint32 fail, in PRUint32 zfail, in PRUint32 zpass);
|
|
|
|
void texSubImage2D ();
|
|
void texImage2D ();
|
|
void texSubImage2DHTML (in PRUint32 target, in PRUint32 level, in PRInt32 x, in PRInt32 y, in nsIDOMHTMLElement imageOrCanvas);
|
|
void texImage2DHTML (in PRUint32 target, in PRUint32 level, in nsIDOMHTMLElement imageOrCanvas);
|
|
|
|
void texParameter();
|
|
|
|
// YES void texSubImage2DHTML (...);
|
|
|
|
void uniform1i(in PRUint32 id, in PRInt32 x);
|
|
void uniform2i(in PRUint32 id, in PRInt32 x, in PRInt32 y);
|
|
void uniform3i(in PRUint32 id, in PRInt32 x, in PRInt32 y, in PRInt32 z);
|
|
void uniform4i(in PRUint32 id, in PRInt32 x, in PRInt32 y, in PRInt32 z, in PRInt32 w);
|
|
|
|
void uniform1iv(/*in PRUint32 id, in int[] array */);
|
|
void uniform2iv(/*in PRUint32 id, in int[] array */);
|
|
void uniform3iv(/*in PRUint32 id, in int[] array */);
|
|
void uniform4iv(/*in PRUint32 id, in int[] array */);
|
|
|
|
void uniform1f(in PRUint32 id, in float x);
|
|
void uniform2f(in PRUint32 id, in float x, in float y);
|
|
void uniform3f(in PRUint32 id, in float x, in float y, in float z);
|
|
void uniform4f(in PRUint32 id, in float x, in float y, in float z, in float w);
|
|
|
|
void uniform1fv(/*in PRUint32 id, in float[] array */);
|
|
void uniform2fv(/*in PRUint32 id, in float[] array */);
|
|
void uniform3fv(/*in PRUint32 id, in float[] array */);
|
|
void uniform4fv(/*in PRUint32 id, in float[] array */);
|
|
|
|
void uniformMatrix2fv(/*in PRUint32 id, in float[] array */);
|
|
void uniformMatrix3fv(/*in PRUint32 id, in float[] array */);
|
|
void uniformMatrix4fv(/*in PRUint32 id, in float[] array */);
|
|
|
|
void useProgram (in PRUint32 program);
|
|
void validateProgram (in PRUint32 program);
|
|
|
|
void vertexAttrib1f(in PRUint32 id, in float x);
|
|
void vertexAttrib2f(in PRUint32 id, in float x, in float y);
|
|
void vertexAttrib3f(in PRUint32 id, in float x, in float y, in float z);
|
|
void vertexAttrib4f(in PRUint32 id, in float x, in float y, in float z, in float w);
|
|
|
|
void vertexAttrib1fv(/*in PRUint32 id, in float[] array*/);
|
|
void vertexAttrib2fv(/*in PRUint32 id, in float[] array*/);
|
|
void vertexAttrib3fv(/*in PRUint32 id, in float[] array*/);
|
|
void vertexAttrib4fv(/*in PRUint32 id, in float[] array*/);
|
|
|
|
void vertexAttribPointer (/*in PRUint32 index, in PRInt32 size, in PRUint32 type, in PRBool normalized, in PRUint32 stride, in Object[] array*/);
|
|
|
|
void viewport (in PRInt32 x, in PRInt32 y, in PRInt32 width, in PRInt32 height);
|
|
|
|
void compileShader (in PRUint32 shader);
|
|
void getShaderParameter (in PRUint32 shader, in PRUint32 pname);
|
|
string getShaderInfoLog (in PRUint32 shader);
|
|
string getShaderSource (in PRUint32 shader);
|
|
void shaderSource(in PRUint32 shader, in string source);
|
|
|
|
void getImageData (in PRUint32 x, in PRUint32 y, in PRUint32 width, in PRUint32 height);
|
|
|
|
//
|
|
// framebuffer_object methods
|
|
//
|
|
|
|
void bindRenderbuffer (in PRUint32 target, in PRUint32 renderbuffer);
|
|
boolean isRenderbuffer (in PRUint32 renderbuffer);
|
|
void deleteRenderbuffers (/*in PRUint32[] renderbuffers*/);
|
|
void genRenderbuffers (in PRUint32 n);
|
|
|
|
void renderbufferStorage (in PRUint32 target, in PRUint32 internalFormat, in PRUint32 width, in PRUint32 height);
|
|
|
|
void getRenderbufferParameter (in PRUint32 target, in PRUint32 pname);
|
|
|
|
void bindFramebuffer (in PRUint32 target, in PRUint32 framebuffer);
|
|
boolean isFramebuffer (in PRUint32 framebuffer);
|
|
void deleteFramebuffers (/*in PRUint32[] framebuffers*/);
|
|
void genFramebuffers (in PRUint32 n);
|
|
|
|
PRUint32 checkFramebufferStatus (in PRUint32 target);
|
|
|
|
void framebufferTexture2D (in PRUint32 target, in PRUint32 attachmentPoint, in PRUint32 textureTarget, in PRUint32 texture, in PRInt32 level);
|
|
|
|
void framebufferRenderbuffer (in PRUint32 target, in PRUint32 attachmentPoint, in PRUint32 renderbufferTarget, in PRUint32 renderbuffer);
|
|
|
|
void getFramebufferAttachmentParameter (in PRUint32 target, in PRUint32 attachment, in PRUint32 pname);
|
|
|
|
};
|
|
|