mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
b=533663; use js typed arrays in webgl; r=jmuizelaar,mrbkap,brendan
This commit is contained in:
parent
2a8fc41f02
commit
553a8c9c5a
1031
content/canvas/src/CustomQS_WebGL.h
Normal file
1031
content/canvas/src/CustomQS_WebGL.h
Normal file
File diff suppressed because it is too large
Load Diff
@ -46,7 +46,9 @@ MODULE = content
|
||||
LIBRARY_NAME = gkconcvs_s
|
||||
LIBXUL_LIBRARY = 1
|
||||
|
||||
|
||||
EXPORTS = \
|
||||
CustomQS_WebGL.h \
|
||||
$(NULL)
|
||||
|
||||
CPPSRCS = \
|
||||
CanvasUtils.cpp \
|
||||
@ -82,7 +84,6 @@ WEBGL_PLATFORM = CGL
|
||||
endif
|
||||
|
||||
CPPSRCS += \
|
||||
WebGLArrays.cpp \
|
||||
WebGLContext.cpp \
|
||||
WebGLContextGL.cpp \
|
||||
WebGLContextUtils.cpp \
|
||||
|
@ -15,8 +15,6 @@
|
||||
#include "CanvasUtils.h"
|
||||
#include "NativeJSContext.h"
|
||||
|
||||
#include "WebGLArray.h"
|
||||
|
||||
using namespace mozilla;
|
||||
|
||||
nsresult NS_NewCanvasRenderingContextWebGL(nsICanvasRenderingContextWebGL** aResult);
|
||||
|
@ -58,13 +58,10 @@
|
||||
#include "SimpleBuffer.h"
|
||||
#include "nsGLPbuffer.h"
|
||||
|
||||
#include "WebGLArrays.h"
|
||||
|
||||
class nsIDocShell;
|
||||
|
||||
namespace mozilla {
|
||||
|
||||
class WebGLArray;
|
||||
class WebGLTexture;
|
||||
class WebGLBuffer;
|
||||
class WebGLProgram;
|
||||
@ -264,9 +261,20 @@ protected:
|
||||
|
||||
void MakeContextCurrent() { mGLPbuffer->MakeContextCurrent(); }
|
||||
|
||||
nsresult TexImageElementBase(nsIDOMHTMLElement *imageOrCanvas,
|
||||
gfxImageSurface **imageOut,
|
||||
PRBool flipY, PRBool premultiplyAlpha);
|
||||
// helpers
|
||||
nsresult TexImage2D_base(GLenum target, GLint level, GLenum internalformat,
|
||||
GLsizei width, GLsizei height, GLint border,
|
||||
GLenum format, GLenum type,
|
||||
void *data, PRUint32 byteLength);
|
||||
nsresult TexSubImage2D_base(GLenum target, GLint level,
|
||||
GLint xoffset, GLint yoffset,
|
||||
GLsizei width, GLsizei height,
|
||||
GLenum format, GLenum type,
|
||||
void *pixels, PRUint32 byteLength);
|
||||
|
||||
nsresult DOMElementToImageSurface(nsIDOMElement *imageOrCanvas,
|
||||
gfxImageSurface **imageOut,
|
||||
PRBool flipY, PRBool premultiplyAlpha);
|
||||
|
||||
GLuint mActiveTexture;
|
||||
|
||||
@ -343,42 +351,32 @@ class WebGLBuffer :
|
||||
{
|
||||
public:
|
||||
WebGLBuffer(GLuint name)
|
||||
: mName(name), mDeleted(PR_FALSE), mGLType(0)
|
||||
: mName(name), mDeleted(PR_FALSE), mByteLength(0)
|
||||
{ }
|
||||
|
||||
void Delete() {
|
||||
if (mDeleted)
|
||||
return;
|
||||
ZeroOwners();
|
||||
|
||||
mDeleted = PR_TRUE;
|
||||
mByteLength = 0;
|
||||
}
|
||||
|
||||
PRBool Deleted() { return mDeleted; }
|
||||
GLuint GLName() { return mName; }
|
||||
PRUint32 ByteLength() { return mByteLength; }
|
||||
|
||||
void Set(nsIWebGLArray *na) {
|
||||
mGLType = na->NativeType();
|
||||
mElementSize = na->NativeElementSize();
|
||||
mCount = na->NativeCount();
|
||||
void SetByteLength(GLuint len) {
|
||||
mByteLength = len;
|
||||
}
|
||||
|
||||
void SetCount(GLuint count) {
|
||||
mCount = count;
|
||||
}
|
||||
|
||||
GLenum GLType() { return mGLType; }
|
||||
PRUint32 ByteCount() { return mElementSize * mCount; }
|
||||
PRUint32 Count() { return mCount; }
|
||||
PRUint32 ElementSize() { return mElementSize; }
|
||||
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_DECL_NSIWEBGLBUFFER
|
||||
protected:
|
||||
GLuint mName;
|
||||
PRBool mDeleted;
|
||||
|
||||
GLenum mGLType;
|
||||
PRUint32 mElementSize;
|
||||
PRUint32 mCount;
|
||||
PRUint32 mByteLength;
|
||||
};
|
||||
|
||||
class WebGLTexture :
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -81,17 +81,17 @@ WebGLContext::ValidateBuffers(PRUint32 count)
|
||||
|
||||
// is this a problem?
|
||||
if (!vd.enabled)
|
||||
continue;
|
||||
continue;
|
||||
|
||||
if (vd.buf == nsnull) {
|
||||
LogMessage("No VBO bound to index %d (or it's been deleted)!", i);
|
||||
return PR_FALSE;
|
||||
LogMessage("No VBO bound to index %d (or it's been deleted)!", i);
|
||||
return PR_FALSE;
|
||||
}
|
||||
|
||||
GLuint needed = vd.offset + (vd.stride ? vd.stride : vd.size) * count;
|
||||
if (vd.buf->Count() < needed) {
|
||||
LogMessage("VBO too small for bound attrib index %d: need at least %d elements, but have only %d", i, needed, vd.buf->Count());
|
||||
return PR_FALSE;
|
||||
if (vd.buf->ByteLength() < needed) {
|
||||
LogMessage("VBO too small for bound attrib index %d: need at least %d bytes, but have only %d", i, needed, vd.buf->ByteLength());
|
||||
return PR_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -435,7 +435,6 @@
|
||||
|
||||
#include "nsIDOMCanvasRenderingContext2D.h"
|
||||
#include "nsICanvasRenderingContextWebGL.h"
|
||||
#include "WebGLArray.h"
|
||||
|
||||
#include "nsIImageDocument.h"
|
||||
|
||||
@ -1321,29 +1320,6 @@ static nsDOMClassInfoData sClassInfoData[] = {
|
||||
DOM_DEFAULT_SCRIPTABLE_FLAGS)
|
||||
NS_DEFINE_CLASSINFO_DATA(WebGLRenderbuffer, nsDOMGenericSH,
|
||||
DOM_DEFAULT_SCRIPTABLE_FLAGS)
|
||||
NS_DEFINE_CLASSINFO_DATA(WebGLArrayBuffer, nsDOMGenericSH,
|
||||
DOM_DEFAULT_SCRIPTABLE_FLAGS)
|
||||
NS_DEFINE_CLASSINFO_DATA(WebGLFloatArray, nsDOMGenericSH,
|
||||
nsIXPCScriptable::DONT_ENUM_QUERY_INTERFACE |
|
||||
nsIXPCScriptable::CLASSINFO_INTERFACES_ONLY)
|
||||
NS_DEFINE_CLASSINFO_DATA(WebGLByteArray, nsDOMGenericSH,
|
||||
nsIXPCScriptable::DONT_ENUM_QUERY_INTERFACE |
|
||||
nsIXPCScriptable::CLASSINFO_INTERFACES_ONLY)
|
||||
NS_DEFINE_CLASSINFO_DATA(WebGLUnsignedByteArray, nsDOMGenericSH,
|
||||
nsIXPCScriptable::DONT_ENUM_QUERY_INTERFACE |
|
||||
nsIXPCScriptable::CLASSINFO_INTERFACES_ONLY)
|
||||
NS_DEFINE_CLASSINFO_DATA(WebGLShortArray, nsDOMGenericSH,
|
||||
nsIXPCScriptable::DONT_ENUM_QUERY_INTERFACE |
|
||||
nsIXPCScriptable::CLASSINFO_INTERFACES_ONLY)
|
||||
NS_DEFINE_CLASSINFO_DATA(WebGLUnsignedShortArray, nsDOMGenericSH,
|
||||
nsIXPCScriptable::DONT_ENUM_QUERY_INTERFACE |
|
||||
nsIXPCScriptable::CLASSINFO_INTERFACES_ONLY)
|
||||
NS_DEFINE_CLASSINFO_DATA(WebGLIntArray, nsDOMGenericSH,
|
||||
nsIXPCScriptable::DONT_ENUM_QUERY_INTERFACE |
|
||||
nsIXPCScriptable::CLASSINFO_INTERFACES_ONLY)
|
||||
NS_DEFINE_CLASSINFO_DATA(WebGLUnsignedIntArray, nsDOMGenericSH,
|
||||
nsIXPCScriptable::DONT_ENUM_QUERY_INTERFACE |
|
||||
nsIXPCScriptable::CLASSINFO_INTERFACES_ONLY)
|
||||
|
||||
NS_DEFINE_CLASSINFO_DATA(PaintRequest, nsDOMGenericSH,
|
||||
DOM_DEFAULT_SCRIPTABLE_FLAGS)
|
||||
@ -1391,16 +1367,6 @@ struct nsConstructorFuncMapData
|
||||
static const nsConstructorFuncMapData kConstructorFuncMap[] =
|
||||
{
|
||||
NS_DEFINE_CONSTRUCTOR_FUNC_DATA(Worker, nsDOMWorker::NewWorker)
|
||||
|
||||
// WebGL Array Types
|
||||
NS_DEFINE_CONSTRUCTOR_FUNC_DATA(WebGLArrayBuffer, NS_NewWebGLArrayBuffer)
|
||||
NS_DEFINE_CONSTRUCTOR_FUNC_DATA(WebGLFloatArray, NS_NewWebGLFloatArray)
|
||||
NS_DEFINE_CONSTRUCTOR_FUNC_DATA(WebGLByteArray, NS_NewWebGLByteArray)
|
||||
NS_DEFINE_CONSTRUCTOR_FUNC_DATA(WebGLUnsignedByteArray, NS_NewWebGLUnsignedByteArray)
|
||||
NS_DEFINE_CONSTRUCTOR_FUNC_DATA(WebGLShortArray, NS_NewWebGLShortArray)
|
||||
NS_DEFINE_CONSTRUCTOR_FUNC_DATA(WebGLUnsignedShortArray, NS_NewWebGLUnsignedShortArray)
|
||||
NS_DEFINE_CONSTRUCTOR_FUNC_DATA(WebGLIntArray, NS_NewWebGLIntArray)
|
||||
NS_DEFINE_CONSTRUCTOR_FUNC_DATA(WebGLUnsignedIntArray, NS_NewWebGLUnsignedIntArray)
|
||||
};
|
||||
|
||||
nsIXPConnect *nsDOMClassInfo::sXPConnect = nsnull;
|
||||
@ -3741,38 +3707,6 @@ nsDOMClassInfo::Init()
|
||||
DOM_CLASSINFO_MAP_ENTRY(nsIWebGLRenderbuffer)
|
||||
DOM_CLASSINFO_MAP_END
|
||||
|
||||
DOM_CLASSINFO_MAP_BEGIN(WebGLArrayBuffer, nsIWebGLArrayBuffer)
|
||||
DOM_CLASSINFO_MAP_ENTRY(nsIWebGLArrayBuffer)
|
||||
DOM_CLASSINFO_MAP_END
|
||||
|
||||
DOM_CLASSINFO_MAP_BEGIN(WebGLFloatArray, nsIWebGLFloatArray)
|
||||
DOM_CLASSINFO_MAP_ENTRY(nsIWebGLFloatArray)
|
||||
DOM_CLASSINFO_MAP_END
|
||||
|
||||
DOM_CLASSINFO_MAP_BEGIN(WebGLByteArray, nsIWebGLByteArray)
|
||||
DOM_CLASSINFO_MAP_ENTRY(nsIWebGLByteArray)
|
||||
DOM_CLASSINFO_MAP_END
|
||||
|
||||
DOM_CLASSINFO_MAP_BEGIN(WebGLUnsignedByteArray, nsIWebGLUnsignedByteArray)
|
||||
DOM_CLASSINFO_MAP_ENTRY(nsIWebGLUnsignedByteArray)
|
||||
DOM_CLASSINFO_MAP_END
|
||||
|
||||
DOM_CLASSINFO_MAP_BEGIN(WebGLShortArray, nsIWebGLShortArray)
|
||||
DOM_CLASSINFO_MAP_ENTRY(nsIWebGLShortArray)
|
||||
DOM_CLASSINFO_MAP_END
|
||||
|
||||
DOM_CLASSINFO_MAP_BEGIN(WebGLUnsignedShortArray, nsIWebGLUnsignedShortArray)
|
||||
DOM_CLASSINFO_MAP_ENTRY(nsIWebGLUnsignedShortArray)
|
||||
DOM_CLASSINFO_MAP_END
|
||||
|
||||
DOM_CLASSINFO_MAP_BEGIN(WebGLIntArray, nsIWebGLIntArray)
|
||||
DOM_CLASSINFO_MAP_ENTRY(nsIWebGLIntArray)
|
||||
DOM_CLASSINFO_MAP_END
|
||||
|
||||
DOM_CLASSINFO_MAP_BEGIN(WebGLUnsignedIntArray, nsIWebGLUnsignedIntArray)
|
||||
DOM_CLASSINFO_MAP_ENTRY(nsIWebGLUnsignedIntArray)
|
||||
DOM_CLASSINFO_MAP_END
|
||||
|
||||
DOM_CLASSINFO_MAP_BEGIN(PaintRequest, nsIDOMPaintRequest)
|
||||
DOM_CLASSINFO_MAP_ENTRY(nsIDOMPaintRequest)
|
||||
DOM_CLASSINFO_MAP_END
|
||||
|
@ -468,16 +468,6 @@ enum nsDOMClassInfoID {
|
||||
eDOMClassInfo_WebGLFramebuffer_id,
|
||||
eDOMClassInfo_WebGLRenderbuffer_id,
|
||||
|
||||
// WebGL Buffers
|
||||
eDOMClassInfo_WebGLArrayBuffer_id,
|
||||
eDOMClassInfo_WebGLFloatArray_id,
|
||||
eDOMClassInfo_WebGLByteArray_id,
|
||||
eDOMClassInfo_WebGLUnsignedByteArray_id,
|
||||
eDOMClassInfo_WebGLShortArray_id,
|
||||
eDOMClassInfo_WebGLUnsignedShortArray_id,
|
||||
eDOMClassInfo_WebGLIntArray_id,
|
||||
eDOMClassInfo_WebGLUnsignedIntArray_id,
|
||||
|
||||
eDOMClassInfo_PaintRequest_id,
|
||||
eDOMClassInfo_PaintRequestList_id,
|
||||
|
||||
|
@ -38,6 +38,7 @@
|
||||
|
||||
#include "nsISupports.idl"
|
||||
|
||||
interface nsIDOMElement;
|
||||
interface nsIDOMHTMLCanvasElement;
|
||||
|
||||
// XXX should we comment out these typedefs in the C++ header?
|
||||
@ -62,113 +63,17 @@ typedef long GLfixed;
|
||||
typedef long GLsizeiptr;
|
||||
|
||||
%{C++
|
||||
namespace mozilla {
|
||||
class WebGLArrayBuffer;
|
||||
namespace js {
|
||||
struct ArrayBuffer;
|
||||
struct TypedArray;
|
||||
}
|
||||
|
||||
/* Avoid conflict with WinAPI */
|
||||
#undef NO_ERROR
|
||||
%}
|
||||
[ptr] native WebGLArrayBufferPtr (mozilla::WebGLArrayBuffer);
|
||||
//
|
||||
// Array types
|
||||
//
|
||||
[scriptable, uuid(34b6cf8e-47da-458e-ab42-0451a3533ee5)]
|
||||
interface nsIWebGLArrayBuffer : nsISupports
|
||||
{
|
||||
readonly attribute unsigned long byteLength;
|
||||
|
||||
[noscript, notxpcom] WebGLArrayBufferPtr GetNativeArrayBuffer();
|
||||
[noscript, notxpcom] voidPtr nativePointer();
|
||||
[noscript, notxpcom] unsigned long nativeSize();
|
||||
};
|
||||
|
||||
[scriptable, uuid(84ba4e98-8173-7c10-dca0-b5ba7809fcf3)]
|
||||
interface nsIWebGLArray : nsISupports
|
||||
{
|
||||
readonly attribute nsIWebGLArrayBuffer buffer;
|
||||
readonly attribute unsigned long byteOffset;
|
||||
readonly attribute unsigned long byteLength;
|
||||
readonly attribute unsigned long length;
|
||||
|
||||
// XXX kill this.
|
||||
unsigned long alignedSizeInBytes();
|
||||
|
||||
nsIWebGLArray slice(in unsigned long offset, in unsigned long length);
|
||||
|
||||
[noscript, notxpcom] unsigned long nativeType();
|
||||
[noscript, notxpcom] voidPtr nativePointer();
|
||||
[noscript, notxpcom] unsigned long nativeSize();
|
||||
[noscript, notxpcom] unsigned long nativeElementSize();
|
||||
[noscript, notxpcom] unsigned long nativeCount();
|
||||
};
|
||||
|
||||
[scriptable, Uuid(0f6d0e7b-bcfc-9305-6a1d-a9653b5e8c80)]
|
||||
interface nsIWebGLFloatArray : nsIWebGLArray
|
||||
{
|
||||
[IndexGetter] float get(in unsigned long index);
|
||||
//[IndexSetter] void set(in unsigned long index, in float value);
|
||||
//void set(in CanvasFloatArray array, [Optional] in unsigned long offset);
|
||||
//void set(in sequence<float> array, [Optional] in unsigned long offset);
|
||||
void set();
|
||||
};
|
||||
|
||||
[scriptable, uuid(b29db7cf-fa58-435f-8d45-611cc50979ad)]
|
||||
interface nsIWebGLByteArray : nsIWebGLArray
|
||||
{
|
||||
[IndexGetter] long get(in unsigned long index);
|
||||
//[IndexSetter] void set(in unsigned long index, in long value);
|
||||
//void set(in nsIWebGLByteArray array, [Optional] in unsigned long offset);
|
||||
//void set(in sequence<long> array, [Optional] in unsigned long offset);
|
||||
void set();
|
||||
};
|
||||
|
||||
[scriptable, uuid(3daa67fa-e743-2cbd-a212-805c2fc520cc)]
|
||||
interface nsIWebGLUnsignedByteArray : nsIWebGLArray
|
||||
{
|
||||
[IndexGetter] unsigned long get(in unsigned long index);
|
||||
//[IndexSetter] void set(in unsigned long index, in unsigned long value);
|
||||
//void set(in CanvasUnsignedByteArray array, [Optional] in unsigned long offset);
|
||||
//void set(in sequence<unsigned long> array, [Optional] in unsigned long offset);
|
||||
void set();
|
||||
};
|
||||
|
||||
[scriptable, uuid(a8a982e3-3977-7364-f012-c497a5ab7681)]
|
||||
interface nsIWebGLShortArray : nsIWebGLArray
|
||||
{
|
||||
[IndexGetter] long get(in unsigned long index);
|
||||
//[IndexSetter] void set(in unsigned long index, in long value);
|
||||
//void set(in CanvasShortArray array, [Optional] in unsigned long offset);
|
||||
//void set(in sequence<long> array, [Optional] in unsigned long offset);
|
||||
void set();
|
||||
};
|
||||
|
||||
[scriptable, uuid(8b9c67cc-c7be-a062-84b0-76a910a5c1e6)]
|
||||
interface nsIWebGLUnsignedShortArray : nsIWebGLArray
|
||||
{
|
||||
[IndexGetter] unsigned long get(in unsigned long index);
|
||||
//[IndexSetter] void set(in unsigned long index, in unsigned long value);
|
||||
//void set(in CanvasUnsignedShortArray array, [Optional] in unsigned long offset);
|
||||
//void set(in sequence<unsigned long> array, [Optional] in unsigned long offset);
|
||||
void set();
|
||||
};
|
||||
|
||||
[scriptable, uuid(b9b2e861-3a28-4311-993c-799e4f77dcba)]
|
||||
interface nsIWebGLIntArray : nsIWebGLArray
|
||||
{
|
||||
[IndexGetter] long get(in unsigned long index);
|
||||
//[IndexSetter] void set(in unsigned long index, in long value);
|
||||
//void set(in CanvasIntArray array, [Optional] in unsigned long offset);
|
||||
//void set(in sequence<long> array, [Optional] in unsigned long offset);
|
||||
void set();
|
||||
};
|
||||
|
||||
[scriptable, uuid(0d6ee3f8-71b6-460d-b05a-d579cc55edbe)]
|
||||
interface nsIWebGLUnsignedIntArray : nsIWebGLArray
|
||||
{
|
||||
[IndexGetter] unsigned long get(in unsigned long index);
|
||||
//[IndexSetter] void set(in unsigned long index, in unsigned long value);
|
||||
//void set(in CanvasUnsignedIntArray array, [Optional] in unsigned long offset);
|
||||
//void set(in sequence<unsigned long> array, [Optional] in unsigned long offset);
|
||||
void set();
|
||||
};
|
||||
[ptr] native WebGLArrayBufferPtr (js::ArrayBuffer);
|
||||
[ptr] native WebGLArrayPtr (js::TypedArray);
|
||||
|
||||
//
|
||||
// OpenGL object wrappers
|
||||
@ -199,7 +104,8 @@ interface nsIWebGLShader : nsISupports
|
||||
};
|
||||
|
||||
[scriptable, uuid(beea4b38-3094-4e8d-b6e6-8b21d07e8994)]
|
||||
interface nsIWebGLShaderArray {
|
||||
interface nsIWebGLShaderArray : nsISupports
|
||||
{
|
||||
readonly attribute unsigned long length;
|
||||
nsIWebGLShader item(in unsigned long index);
|
||||
};
|
||||
@ -217,7 +123,8 @@ interface nsIWebGLRenderbuffer : nsISupports
|
||||
};
|
||||
|
||||
[scriptable, uuid(a85d4fd0-5b9f-4cb8-aeee-5a2c5c5bad76)]
|
||||
interface nsIWebGLActiveInfo {
|
||||
interface nsIWebGLActiveInfo : nsISupports
|
||||
{
|
||||
readonly attribute GLint size;
|
||||
readonly attribute GLenum type;
|
||||
readonly attribute DOMString name;
|
||||
@ -231,6 +138,7 @@ interface nsICanvasRenderingContextWebGL : nsISupports
|
||||
// ARRAY CONSTRUCTORS
|
||||
//
|
||||
|
||||
/*
|
||||
nsIWebGLFloatArray createFloatArray();
|
||||
nsIWebGLByteArray createByteArray();
|
||||
nsIWebGLUnsignedByteArray createUnsignedByteArray();
|
||||
@ -238,6 +146,7 @@ interface nsICanvasRenderingContextWebGL : nsISupports
|
||||
nsIWebGLUnsignedShortArray createUnsignedShortArray();
|
||||
nsIWebGLIntArray createIntArray();
|
||||
nsIWebGLUnsignedIntArray createUnsignedIntArray();
|
||||
*/
|
||||
|
||||
//
|
||||
// CONSTANTS
|
||||
@ -357,10 +266,6 @@ interface nsICanvasRenderingContextWebGL : nsISupports
|
||||
const unsigned long SAMPLE_COVERAGE = 0x80A0;
|
||||
|
||||
/* ErrorCode */
|
||||
%{C++
|
||||
/* Avoid conflict with WinAPI */
|
||||
#undef NO_ERROR
|
||||
%}
|
||||
const unsigned long NO_ERROR = 0;
|
||||
const unsigned long INVALID_ENUM = 0x0500;
|
||||
const unsigned long INVALID_VALUE = 0x0501;
|
||||
@ -695,15 +600,14 @@ interface nsICanvasRenderingContextWebGL : nsISupports
|
||||
void blendFuncSeparate (in GLenum srcRGB, in GLenum dstRGB, in GLenum srcAlpha, in GLenum dstAlpha);
|
||||
|
||||
// Modified: void glBufferData (GLenum target, GLsizeiptr size, const void* data, GLenum usage);
|
||||
// void bufferData (in GLenum target, in GLsizei size, in GLenum usage);
|
||||
// void bufferData (in GLenum target, in nsIWebGLArray data, in GLenum usage);
|
||||
// void bufferData (in GLenum target, in nsIWebGLArrayBuffer data, in GLenum usage);
|
||||
void bufferData (in GLenum target);
|
||||
void bufferData([optional] in long dummy);
|
||||
[noscript] void bufferData_size (in GLenum target, in GLsizei size, in GLenum usage);
|
||||
[noscript] void bufferData_buf (in GLenum target, in WebGLArrayBufferPtr data, in GLenum usage);
|
||||
[noscript] void bufferData_array (in GLenum target, in WebGLArrayPtr data, in GLenum usage);
|
||||
|
||||
// Modified: void glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void* data);
|
||||
// void bufferSubData (in GLenum target, in GLsizeiptr offset, in nsIWebGLArray data);
|
||||
// void bufferSubData (in GLenum target, in GLsizeiptr offset, in CanvasArrayBuffer data);
|
||||
void bufferSubData (in GLenum target, in GLsizeiptr offset);
|
||||
void bufferSubData([optional] in long dummy);
|
||||
[noscript] void bufferSubData_buf (in GLenum target, in GLsizeiptr offset, in WebGLArrayBufferPtr data);
|
||||
[noscript] void bufferSubData_array (in GLenum target, in GLsizeiptr offset, in WebGLArrayPtr data);
|
||||
|
||||
GLenum checkFramebufferStatus (in GLenum target);
|
||||
void clear (in GLbitfield mask);
|
||||
@ -713,13 +617,10 @@ interface nsICanvasRenderingContextWebGL : nsISupports
|
||||
void colorMask (in GLboolean red, in GLboolean green, in GLboolean blue, in GLboolean alpha);
|
||||
void compileShader (in nsIWebGLShader shader);
|
||||
|
||||
//void glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data);
|
||||
//void glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data);
|
||||
|
||||
void copyTexImage2D (in GLenum target, in GLint level, in GLenum internalformat,
|
||||
in GLint x, in GLint y, in GLsizei width, in GLsizei height, in GLint border);
|
||||
in GLint x, in GLint y, in GLsizei width, in GLsizei height, in GLint border);
|
||||
void copyTexSubImage2D (in GLenum target, in GLint level, in GLint xoffset, in GLint yoffset,
|
||||
in GLint x, in GLint y, in GLsizei width, in GLsizei height);
|
||||
in GLint x, in GLint y, in GLsizei width, in GLsizei height);
|
||||
|
||||
nsIWebGLBuffer createBuffer();
|
||||
nsIWebGLProgram createProgram ();
|
||||
@ -867,28 +768,36 @@ interface nsICanvasRenderingContextWebGL : nsISupports
|
||||
void stencilOp (in GLenum fail, in GLenum zfail, in GLenum zpass);
|
||||
void stencilOpSeparate (in GLenum face, in GLenum fail, in GLenum zfail, in GLenum zpass);
|
||||
|
||||
// Modified: glTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height,
|
||||
// GLint border, GLenum format, GLenum type, const void* pixels);
|
||||
//void glTexImage2D (in GLenum target, in GLint level, in GLenum internalformat, in GLsizei width, in GLsizei height, in GLint border, in GLenum format, in GLenum type, nsIWebGLArray pixels);
|
||||
//void glTexImage2D (in GLenum target, in GLint level, in HTMLImageElement image);
|
||||
//void glTexImage2D (in GLenum target, in GLint level, in HTMLnsIWebGLElement canvas);
|
||||
//void glTexImage2D (in GLenum target, in GLint level, in HTMLVideoElement video);
|
||||
void texImage2D ();
|
||||
void texImage2D([optional] in long dummy);
|
||||
[noscript] void texImage2D_buf (in GLenum target, in GLint level, in GLenum internalformat,
|
||||
in GLsizei width, in GLsizei height,
|
||||
in GLint border, in GLenum format, in GLenum type, in WebGLArrayBufferPtr pixels);
|
||||
[noscript] void texImage2D_array (in GLenum target, in GLint level, in GLenum internalformat,
|
||||
in GLsizei width, in GLsizei height,
|
||||
in GLint border, in GLenum format, in GLenum type, in WebGLArrayPtr pixels);
|
||||
// HTMLImageElement, HTMLCanvasElement, HTMLVideoElement
|
||||
[noscript] void texImage2D_dom (in GLenum target, in GLint level, in nsIDOMElement element,
|
||||
[optional] in GLboolean premultiply, [optional] in GLboolean asPremultipliedAlpha);
|
||||
|
||||
|
||||
void texSubImage2D([optional] in long dummy);
|
||||
[noscript] void texSubImage2D_buf (in GLenum target, in GLint level,
|
||||
in GLint xoffset, in GLint yoffset, in GLsizei width, in GLsizei height,
|
||||
in GLenum format, in GLenum type, in WebGLArrayBufferPtr pixels);
|
||||
[noscript] void texSubImage2D_array (in GLenum target, in GLint level,
|
||||
in GLint xoffset, in GLint yoffset, in GLsizei width, in GLsizei height,
|
||||
in GLenum format, in GLenum type, in WebGLArrayPtr pixels);
|
||||
// HTMLImageElement, HTMLCanvasElement, HTMLVideoElement
|
||||
[noscript] void texSubImage2D_dom (in GLenum target, in GLint level,
|
||||
in GLint xoffset, in GLint yoffset, in GLsizei width, in GLsizei height,
|
||||
in nsIDOMElement element,
|
||||
[optional] in GLboolean premultiply, [optional] in GLboolean asPremultipliedAlpha);
|
||||
|
||||
// Modified: This replaces glTexParameterf, glTexParameterfv, glTexParameteri and glTexParameteriv
|
||||
void texParameterf (in GLenum target, in GLenum pname, in GLfloat param);
|
||||
void texParameteri (in GLenum target, in GLenum pname, in GLint param);
|
||||
//void glTexParameter (in GLenum target, in GLenum pname, in nsIWebGLArray params);
|
||||
|
||||
// Modified: void glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* pixels);
|
||||
//void glTexSubImage2D (in GLenum target, in GLint level, in GLint xoffset, in GLint yoffset, in GLsizei width, in GLsizei height, in GLenum format, in GLenum type, nsIWebGLArray pixels);
|
||||
//void glTexSubImage2D (in GLenum target, in GLint level, in GLint xoffset, in GLint yoffset, in GLsizei width, in GLsizei height, in HTMLImageElement image);
|
||||
//void glTexSubImage2D (in GLenum target, in GLint level, in GLint xoffset, in GLint yoffset, in GLsizei width, in GLsizei height, in HTMLnsIWebGLElement canvas);
|
||||
//void glTexSubImage2D (in GLenum target, in GLint level, in GLint xoffset, in GLint yoffset, in GLsizei width, in GLsizei height, in HTMLVideoElement video);
|
||||
|
||||
void texSubImage2D ();
|
||||
|
||||
// Modified: All the glUniform*v forms below are modified by replacing 'count' and 'v' with a nsIWebGLArray
|
||||
void uniform1f (in GLint location, in GLfloat x);
|
||||
void uniform1i (in GLint location, in GLint x);
|
||||
@ -899,19 +808,32 @@ interface nsICanvasRenderingContextWebGL : nsISupports
|
||||
void uniform4f (in GLint location, in GLfloat x, in GLfloat y, in GLfloat z, in GLfloat w);
|
||||
void uniform4i (in GLint location, in GLint x, in GLint y, in GLint z, in GLint w);
|
||||
|
||||
void uniform1fv (in GLint location, in nsIWebGLArray v);
|
||||
void uniform1iv (in GLint location, in nsIWebGLArray v);
|
||||
void uniform2fv (in GLint location, in nsIWebGLArray v);
|
||||
void uniform2iv (in GLint location, in nsIWebGLArray v);
|
||||
void uniform3fv (in GLint location, in nsIWebGLArray v);
|
||||
void uniform3iv (in GLint location, in nsIWebGLArray v);
|
||||
void uniform4fv (in GLint location, in nsIWebGLArray v);
|
||||
void uniform4iv (in GLint location, in nsIWebGLArray v);
|
||||
void uniform1fv ([optional] in long dummy);
|
||||
void uniform1iv ([optional] in long dummy);
|
||||
void uniform2fv ([optional] in long dummy);
|
||||
void uniform2iv ([optional] in long dummy);
|
||||
void uniform3fv ([optional] in long dummy);
|
||||
void uniform3iv ([optional] in long dummy);
|
||||
void uniform4fv ([optional] in long dummy);
|
||||
void uniform4iv ([optional] in long dummy);
|
||||
|
||||
// Modified. These are modified by replacing 'count' and 'value' with a nsIWebGLArray
|
||||
void uniformMatrix2fv (in GLint location, in GLboolean transpose, in nsIWebGLArray value);
|
||||
void uniformMatrix3fv (in GLint location, in GLboolean transpose, in nsIWebGLArray value);
|
||||
void uniformMatrix4fv (in GLint location, in GLboolean transpose, in nsIWebGLArray value);
|
||||
[noscript] void uniform1fv_array (in GLint location, in WebGLArrayPtr v);
|
||||
[noscript] void uniform1iv_array (in GLint location, in WebGLArrayPtr v);
|
||||
[noscript] void uniform2fv_array (in GLint location, in WebGLArrayPtr v);
|
||||
[noscript] void uniform2iv_array (in GLint location, in WebGLArrayPtr v);
|
||||
[noscript] void uniform3fv_array (in GLint location, in WebGLArrayPtr v);
|
||||
[noscript] void uniform3iv_array (in GLint location, in WebGLArrayPtr v);
|
||||
[noscript] void uniform4fv_array (in GLint location, in WebGLArrayPtr v);
|
||||
[noscript] void uniform4iv_array (in GLint location, in WebGLArrayPtr v);
|
||||
|
||||
// Modified. These are modified by replacing 'count' and 'value' with a WebGLArrayPtr
|
||||
void uniformMatrix2fv ([optional] in long dummy);
|
||||
void uniformMatrix3fv ([optional] in long dummy);
|
||||
void uniformMatrix4fv ([optional] in long dummy);
|
||||
|
||||
[noscript] void uniformMatrix2fv_array (in GLint location, in GLboolean transpose, in WebGLArrayPtr value);
|
||||
[noscript] void uniformMatrix3fv_array (in GLint location, in GLboolean transpose, in WebGLArrayPtr value);
|
||||
[noscript] void uniformMatrix4fv_array (in GLint location, in GLboolean transpose, in WebGLArrayPtr value);
|
||||
|
||||
// Added API using top entry from the passed nsIWebGLMatrixStack
|
||||
//ZZ void glUniformMatrix (in GLint location, in GLboolean transpose, in nsIWebGLMatrixStack value);
|
||||
@ -919,24 +841,24 @@ interface nsICanvasRenderingContextWebGL : nsISupports
|
||||
void useProgram (in nsIWebGLProgram program);
|
||||
void validateProgram (in nsIWebGLProgram program);
|
||||
|
||||
// Modified: All the glVertexAttrib*v forms below are modified by replacing 'values' with a nsIWebGLArray
|
||||
// Modified: All the glVertexAttrib*v forms below are modified by replacing 'values' with a WebGLArrayPtr
|
||||
void vertexAttrib1f (in GLuint indx, in GLfloat x);
|
||||
void vertexAttrib2f (in GLuint indx, in GLfloat x, in GLfloat y);
|
||||
void vertexAttrib3f (in GLuint indx, in GLfloat x, in GLfloat y, in GLfloat z);
|
||||
void vertexAttrib4f (in GLuint indx, in GLfloat x, in GLfloat y, in GLfloat z, in GLfloat w);
|
||||
|
||||
void vertexAttrib1fv (in GLuint indx, in nsIWebGLArray values);
|
||||
void vertexAttrib2fv (in GLuint indx, in nsIWebGLArray values);
|
||||
void vertexAttrib3fv (in GLuint indx, in nsIWebGLArray values);
|
||||
void vertexAttrib4fv (in GLuint indx, in nsIWebGLArray values);
|
||||
void vertexAttrib1fv ([optional] in long dummy);
|
||||
void vertexAttrib2fv ([optional] in long dummy);
|
||||
void vertexAttrib3fv ([optional] in long dummy);
|
||||
void vertexAttrib4fv ([optional] in long dummy);
|
||||
|
||||
// TBD
|
||||
//void glVertexAttribPointer (in GLuint indx, GLint size, GLenum type, GLboolean normalized,
|
||||
// GLsizei stride, const void* ptr);
|
||||
[noscript] void vertexAttrib1fv_array (in GLuint indx, in WebGLArrayPtr values);
|
||||
[noscript] void vertexAttrib2fv_array (in GLuint indx, in WebGLArrayPtr values);
|
||||
[noscript] void vertexAttrib3fv_array (in GLuint indx, in WebGLArrayPtr values);
|
||||
[noscript] void vertexAttrib4fv_array (in GLuint indx, in WebGLArrayPtr values);
|
||||
|
||||
// size is number of elements; type must match the bound vbo type; offset is in elements
|
||||
// size is number of elements per attrib; offset, stride are in bytes
|
||||
void vertexAttribPointer (in GLuint idx, in GLint size, in GLenum type, in GLboolean normalized, in GLuint stride, in GLuint offset);
|
||||
|
||||
void viewport (in GLint x, in GLint y, in GLsizei width, in GLsizei height);
|
||||
|
||||
};
|
||||
|
@ -88,47 +88,16 @@ members = [
|
||||
# dom/interfaces/canvas
|
||||
#
|
||||
# nsIDOMCanvasRenderingContext2D
|
||||
'nsIDOMCanvasRenderingContext2D.*',
|
||||
# NOTE: attributes strokeStyle and fillStyle are nsIVariant
|
||||
# NOTE: getImageData(), and putImageData() use
|
||||
# NOTE: createImageDate(), getImageData(), and putImageData() use
|
||||
# GetCurrentNativeCallContext
|
||||
'nsIDOMCanvasRenderingContext2D.canvas',
|
||||
'nsIDOMCanvasRenderingContext2D.save',
|
||||
'nsIDOMCanvasRenderingContext2D.restore',
|
||||
'nsIDOMCanvasRenderingContext2D.scale',
|
||||
'nsIDOMCanvasRenderingContext2D.rotate',
|
||||
'nsIDOMCanvasRenderingContext2D.translate',
|
||||
'nsIDOMCanvasRenderingContext2D.transform',
|
||||
'nsIDOMCanvasRenderingContext2D.setTransform',
|
||||
'nsIDOMCanvasRenderingContext2D.globalAlpha',
|
||||
'nsIDOMCanvasRenderingContext2D.globalCompositeOperation',
|
||||
'nsIDOMCanvasRenderingContext2D.lineWidth',
|
||||
'nsIDOMCanvasRenderingContext2D.lineCap',
|
||||
'nsIDOMCanvasRenderingContext2D.lineJoin',
|
||||
'nsIDOMCanvasRenderingContext2D.miterLimit',
|
||||
'nsIDOMCanvasRenderingContext2D.clearRect',
|
||||
'nsIDOMCanvasRenderingContext2D.fillRect',
|
||||
'nsIDOMCanvasRenderingContext2D.strokeRect',
|
||||
'nsIDOMCanvasRenderingContext2D.beginPath',
|
||||
'nsIDOMCanvasRenderingContext2D.closePath',
|
||||
'nsIDOMCanvasRenderingContext2D.moveTo',
|
||||
'nsIDOMCanvasRenderingContext2D.lineTo',
|
||||
'nsIDOMCanvasRenderingContext2D.quadraticCurveTo',
|
||||
'nsIDOMCanvasRenderingContext2D.bezierCurveTo',
|
||||
'nsIDOMCanvasRenderingContext2D.arcTo',
|
||||
'nsIDOMCanvasRenderingContext2D.arc',
|
||||
'nsIDOMCanvasRenderingContext2D.rect',
|
||||
'nsIDOMCanvasRenderingContext2D.fill',
|
||||
'nsIDOMCanvasRenderingContext2D.stroke',
|
||||
'nsIDOMCanvasRenderingContext2D.clip',
|
||||
'nsIDOMCanvasRenderingContext2D.font',
|
||||
'nsIDOMCanvasRenderingContext2D.textAlign',
|
||||
'nsIDOMCanvasRenderingContext2D.textBaseline',
|
||||
'nsIDOMCanvasRenderingContext2D.fillText',
|
||||
'nsIDOMCanvasRenderingContext2D.strokeText',
|
||||
'nsIDOMCanvasRenderingContext2D.measureText',
|
||||
'nsIDOMCanvasRenderingContext2D.drawImage',
|
||||
'nsIDOMCanvasRenderingContext2D.isPointInPath',
|
||||
'nsIDOMTextMetrics.width',
|
||||
'-nsIDOMCanvasRenderingContext2D.strokeStyle',
|
||||
'-nsIDOMCanvasRenderingContext2D.fillStyle',
|
||||
'-nsIDOMCanvasRenderingContext2D.createImageData',
|
||||
'-nsIDOMCanvasRenderingContext2D.getImageData',
|
||||
'-nsIDOMCanvasRenderingContext2D.putImageData',
|
||||
'nsIDOMTextMetrics.*',
|
||||
|
||||
# dom/interfaces/core
|
||||
'nsIDOMCharacterData.data',
|
||||
@ -475,6 +444,31 @@ members = [
|
||||
'nsIDOMNSXPathExpression.evaluateWithContext',
|
||||
|
||||
# dom/interfaces/xul - None.
|
||||
|
||||
# webgl
|
||||
'nsICanvasRenderingContextWebGL.*',
|
||||
# These all use GetCurrentNativeCallContext and should be
|
||||
# custom-quickstubbed.
|
||||
'-nsICanvasRenderingContextWebGL.getActiveAttrib',
|
||||
'-nsICanvasRenderingContextWebGL.getActiveUniform',
|
||||
'-nsICanvasRenderingContextWebGL.getParameter',
|
||||
'-nsICanvasRenderingContextWebGL.getBufferParameteri',
|
||||
'-nsICanvasRenderingContextWebGL.getBufferParameter',
|
||||
'-nsICanvasRenderingContextWebGL.getFramebufferAttachmentParameteri',
|
||||
'-nsICanvasRenderingContextWebGL.getFramebufferAttachmentParameter',
|
||||
'-nsICanvasRenderingContextWebGL.getRenderbufferParameteri',
|
||||
'-nsICanvasRenderingContextWebGL.getRenderbufferParameter',
|
||||
'-nsICanvasRenderingContextWebGL.getProgrami',
|
||||
'-nsICanvasRenderingContextWebGL.getProgramParameter',
|
||||
'-nsICanvasRenderingContextWebGL.texParameterf',
|
||||
'-nsICanvasRenderingContextWebGL.texParameteri',
|
||||
'-nsICanvasRenderingContextWebGL.getTexParameterf',
|
||||
'-nsICanvasRenderingContextWebGL.getTexParameteri',
|
||||
'-nsICanvasRenderingContextWebGL.getUniform',
|
||||
'-nsICanvasRenderingContextWebGL.getVertexAttrib',
|
||||
'-nsICanvasRenderingContextWebGL.readPixels',
|
||||
'-nsICanvasRenderingContextWebGL.getShaderi',
|
||||
'-nsICanvasRenderingContextWebGL.getShaderParameter',
|
||||
]
|
||||
|
||||
# Most interfaces can be found by searching the includePath; to find
|
||||
@ -490,7 +484,18 @@ irregularFilenames = {
|
||||
|
||||
# stowaways
|
||||
'nsIDOMTextMetrics': 'nsIDOMCanvasRenderingContext2D',
|
||||
'nsIDOMCanvasGradient': 'nsIDOMCanvasRenderingContext2D',
|
||||
'nsIDOMCanvasPattern': 'nsIDOMCanvasRenderingContext2D',
|
||||
'nsIXPointerResult': 'nsIXPointer',
|
||||
|
||||
'nsIWebGLTexture': 'nsICanvasRenderingContextWebGL',
|
||||
'nsIWebGLBuffer': 'nsICanvasRenderingContextWebGL',
|
||||
'nsIWebGLProgram': 'nsICanvasRenderingContextWebGL',
|
||||
'nsIWebGLShader': 'nsICanvasRenderingContextWebGL',
|
||||
'nsIWebGLShaderArray': 'nsICanvasRenderingContextWebGL',
|
||||
'nsIWebGLFramebuffer': 'nsICanvasRenderingContextWebGL',
|
||||
'nsIWebGLRenderbuffer': 'nsICanvasRenderingContextWebGL',
|
||||
'nsIWebGLActiveInfo': 'nsICanvasRenderingContextWebGL',
|
||||
}
|
||||
|
||||
customIncludes = [
|
||||
@ -498,7 +503,11 @@ customIncludes = [
|
||||
'nsIContent.h',
|
||||
'nsIDocument.h',
|
||||
'nsINodeList.h',
|
||||
'nsCSSPropertiesQS.h'
|
||||
'nsCSSPropertiesQS.h',
|
||||
]
|
||||
|
||||
customQuickStubs = [
|
||||
'CustomQS_WebGL.h'
|
||||
]
|
||||
|
||||
nsIDOMNode_GetChildNodes_customMethodCallCode = """
|
||||
@ -537,6 +546,16 @@ CSS2Properties_ = {
|
||||
'canFail': True
|
||||
}
|
||||
|
||||
CUSTOM_QS = {
|
||||
'skipgen': True,
|
||||
'traceable': False
|
||||
}
|
||||
|
||||
CUSTOM_QS_TN = {
|
||||
'skipgen': True,
|
||||
'traceable': True
|
||||
}
|
||||
|
||||
customMethodCalls = {
|
||||
'nsIDOMNode_GetNextSibling': {
|
||||
'thisType': 'nsINode',
|
||||
@ -583,6 +602,26 @@ customMethodCalls = {
|
||||
'code': nsIDOMStorage_Clear_customMethodCallCode
|
||||
},
|
||||
'nsIDOMCSS2Properties_': CSS2Properties_,
|
||||
'nsIDOMNSCSS2Properties_': CSS2Properties_
|
||||
'nsIDOMNSCSS2Properties_': CSS2Properties_,
|
||||
# WebGL
|
||||
'nsICanvasRenderingContextWebGL_BufferData': CUSTOM_QS,
|
||||
'nsICanvasRenderingContextWebGL_BufferSubData': CUSTOM_QS,
|
||||
'nsICanvasRenderingContextWebGL_TexImage2D': CUSTOM_QS,
|
||||
'nsICanvasRenderingContextWebGL_TexSubImage2D': CUSTOM_QS,
|
||||
'nsICanvasRenderingContextWebGL_Uniform1iv': CUSTOM_QS_TN,
|
||||
'nsICanvasRenderingContextWebGL_Uniform2iv': CUSTOM_QS_TN,
|
||||
'nsICanvasRenderingContextWebGL_Uniform3iv': CUSTOM_QS_TN,
|
||||
'nsICanvasRenderingContextWebGL_Uniform4iv': CUSTOM_QS_TN,
|
||||
'nsICanvasRenderingContextWebGL_Uniform1fv': CUSTOM_QS_TN,
|
||||
'nsICanvasRenderingContextWebGL_Uniform2fv': CUSTOM_QS_TN,
|
||||
'nsICanvasRenderingContextWebGL_Uniform3fv': CUSTOM_QS_TN,
|
||||
'nsICanvasRenderingContextWebGL_Uniform4fv': CUSTOM_QS_TN,
|
||||
'nsICanvasRenderingContextWebGL_UniformMatrix2fv': CUSTOM_QS_TN,
|
||||
'nsICanvasRenderingContextWebGL_UniformMatrix3fv': CUSTOM_QS_TN,
|
||||
'nsICanvasRenderingContextWebGL_UniformMatrix4fv': CUSTOM_QS_TN,
|
||||
'nsICanvasRenderingContextWebGL_VertexAttrib1fv': CUSTOM_QS,
|
||||
'nsICanvasRenderingContextWebGL_VertexAttrib2fv': CUSTOM_QS,
|
||||
'nsICanvasRenderingContextWebGL_VertexAttrib3fv': CUSTOM_QS,
|
||||
'nsICanvasRenderingContextWebGL_VertexAttrib4fv': CUSTOM_QS
|
||||
}
|
||||
|
||||
|
@ -326,8 +326,12 @@ def readConfigFile(filename, includePath, cachedir, traceable):
|
||||
# Stub all scriptable members of this interface.
|
||||
for member in iface.members:
|
||||
if member.kind in ('method', 'attribute') and not member.noscript:
|
||||
cmc = conf.customMethodCalls.get(interfaceName + "_" + header.methodNativeName(member), None)
|
||||
mayTrace = cmc is None or cmc.get('traceable', True)
|
||||
|
||||
addStubMember(iface.name + '.' + member.name, member,
|
||||
traceable)
|
||||
traceable and mayTrace)
|
||||
|
||||
if member.iface not in stubbedInterfaces:
|
||||
stubbedInterfaces.append(member.iface)
|
||||
else:
|
||||
@ -342,13 +346,10 @@ def readConfigFile(filename, includePath, cachedir, traceable):
|
||||
if member in iface.stubMembers:
|
||||
raise UserError("Member %s is specified more than once."
|
||||
% memberId)
|
||||
mayTrace = True
|
||||
if member.noscript:
|
||||
cmc = conf.customMethodCalls.get(interfaceName + "_" + header.methodNativeName(member), None)
|
||||
if cmc is not None and cmc.get('skipgen', False):
|
||||
# We're doing magic custom stuff for this, so pretend it's not noscript
|
||||
member.noscript = False
|
||||
mayTrace = False
|
||||
|
||||
cmc = conf.customMethodCalls.get(interfaceName + "_" + header.methodNativeName(member), None)
|
||||
mayTrace = cmc is None or cmc.get('traceable', True)
|
||||
|
||||
addStubMember(memberId, member, traceable and mayTrace)
|
||||
if member.iface not in stubbedInterfaces:
|
||||
stubbedInterfaces.append(member.iface)
|
||||
|
Loading…
Reference in New Issue
Block a user