/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM e:/builds/moz2_slave/m-aurora-w32-xr/build/dom/interfaces/canvas/nsIDOMWebGLRenderingContext.idl
 */

#ifndef __gen_nsIDOMWebGLRenderingContext_h__
#define __gen_nsIDOMWebGLRenderingContext_h__


#ifndef __gen_nsISupports_h__
#include "nsISupports.h"
#endif

#ifndef __gen_nsIVariant_h__
#include "nsIVariant.h"
#endif

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
class nsIDOMElement; /* forward declaration */

class nsIDOMHTMLCanvasElement; /* forward declaration */

class nsIPropertyBag; /* forward declaration */

typedef uint32_t  WebGLenum;

typedef bool  WebGLboolean;

typedef uint32_t  WebGLbitfield;

typedef int32_t  WebGLint;

typedef int32_t  WebGLsizei;

typedef int64_t  WebGLsizeiptr;

typedef int64_t  WebGLintptr;

typedef uint32_t  WebGLuint;

typedef float  WebGLfloat;

typedef float  WebGLclampf;

// for jsval
#include "jsapi.h"
namespace mozilla {
namespace dom {
class Element;
} // namespace dom
} // namespace mozilla
/* Avoid conflict with WinAPI */
#undef NO_ERROR

/* starting interface:    nsIWebGLActiveInfo */
#define NS_IWEBGLACTIVEINFO_IID_STR "a85d4fd0-5b9f-4cb8-aeee-5a2c5c5bad76"

#define NS_IWEBGLACTIVEINFO_IID \
  {0xa85d4fd0, 0x5b9f, 0x4cb8, \
    { 0xae, 0xee, 0x5a, 0x2c, 0x5c, 0x5b, 0xad, 0x76 }}

class NS_NO_VTABLE nsIWebGLActiveInfo : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IWEBGLACTIVEINFO_IID)

  /* readonly attribute WebGLint size; */
  NS_IMETHOD GetSize(WebGLint *aSize) = 0;

  /* readonly attribute WebGLenum type; */
  NS_IMETHOD GetType(WebGLenum *aType) = 0;

  /* readonly attribute DOMString name; */
  NS_IMETHOD GetName(nsAString & aName) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIWebGLActiveInfo, NS_IWEBGLACTIVEINFO_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIWEBGLACTIVEINFO \
  NS_IMETHOD GetSize(WebGLint *aSize); \
  NS_IMETHOD GetType(WebGLenum *aType); \
  NS_IMETHOD GetName(nsAString & aName); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIWEBGLACTIVEINFO(_to) \
  NS_IMETHOD GetSize(WebGLint *aSize) { return _to GetSize(aSize); } \
  NS_IMETHOD GetType(WebGLenum *aType) { return _to GetType(aType); } \
  NS_IMETHOD GetName(nsAString & aName) { return _to GetName(aName); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIWEBGLACTIVEINFO(_to) \
  NS_IMETHOD GetSize(WebGLint *aSize) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSize(aSize); } \
  NS_IMETHOD GetType(WebGLenum *aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetType(aType); } \
  NS_IMETHOD GetName(nsAString & aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class nsWebGLActiveInfo : public nsIWebGLActiveInfo
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIWEBGLACTIVEINFO

  nsWebGLActiveInfo();

private:
  ~nsWebGLActiveInfo();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsWebGLActiveInfo, nsIWebGLActiveInfo)

nsWebGLActiveInfo::nsWebGLActiveInfo()
{
  /* member initializers and constructor code */
}

nsWebGLActiveInfo::~nsWebGLActiveInfo()
{
  /* destructor code */
}

/* readonly attribute WebGLint size; */
NS_IMETHODIMP nsWebGLActiveInfo::GetSize(WebGLint *aSize)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute WebGLenum type; */
NS_IMETHODIMP nsWebGLActiveInfo::GetType(WebGLenum *aType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute DOMString name; */
NS_IMETHODIMP nsWebGLActiveInfo::GetName(nsAString & aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif


/* starting interface:    nsIWebGLExtension */
#define NS_IWEBGLEXTENSION_IID_STR "70814f32-a5c5-4b95-83d5-ac653bac3316"

#define NS_IWEBGLEXTENSION_IID \
  {0x70814f32, 0xa5c5, 0x4b95, \
    { 0x83, 0xd5, 0xac, 0x65, 0x3b, 0xac, 0x33, 0x16 }}

class NS_NO_VTABLE nsIWebGLExtension : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IWEBGLEXTENSION_IID)

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIWebGLExtension, NS_IWEBGLEXTENSION_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIWEBGLEXTENSION \
  /* no methods! */

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIWEBGLEXTENSION(_to) \
  /* no methods! */

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIWEBGLEXTENSION(_to) \
  /* no methods! */

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class nsWebGLExtension : public nsIWebGLExtension
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIWEBGLEXTENSION

  nsWebGLExtension();

private:
  ~nsWebGLExtension();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsWebGLExtension, nsIWebGLExtension)

nsWebGLExtension::nsWebGLExtension()
{
  /* member initializers and constructor code */
}

nsWebGLExtension::~nsWebGLExtension()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif


/* starting interface:    nsIWebGLExtensionStandardDerivatives */
#define NS_IWEBGLEXTENSIONSTANDARDDERIVATIVES_IID_STR "3de3dfd9-864a-4e4c-989b-2977eaa80b7b"

#define NS_IWEBGLEXTENSIONSTANDARDDERIVATIVES_IID \
  {0x3de3dfd9, 0x864a, 0x4e4c, \
    { 0x98, 0x9b, 0x29, 0x77, 0xea, 0xa8, 0x0b, 0x7b }}

class NS_NO_VTABLE nsIWebGLExtensionStandardDerivatives : public nsIWebGLExtension {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IWEBGLEXTENSIONSTANDARDDERIVATIVES_IID)

  enum {
    FRAGMENT_SHADER_DERIVATIVE_HINT_OES = 35723U
  };

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIWebGLExtensionStandardDerivatives, NS_IWEBGLEXTENSIONSTANDARDDERIVATIVES_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIWEBGLEXTENSIONSTANDARDDERIVATIVES \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIWEBGLEXTENSIONSTANDARDDERIVATIVES(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIWEBGLEXTENSIONSTANDARDDERIVATIVES(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class nsWebGLExtensionStandardDerivatives : public nsIWebGLExtensionStandardDerivatives
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIWEBGLEXTENSIONSTANDARDDERIVATIVES

  nsWebGLExtensionStandardDerivatives();

private:
  ~nsWebGLExtensionStandardDerivatives();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsWebGLExtensionStandardDerivatives, nsIWebGLExtensionStandardDerivatives)

nsWebGLExtensionStandardDerivatives::nsWebGLExtensionStandardDerivatives()
{
  /* member initializers and constructor code */
}

nsWebGLExtensionStandardDerivatives::~nsWebGLExtensionStandardDerivatives()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif


/* starting interface:    nsIWebGLExtensionLoseContext */
#define NS_IWEBGLEXTENSIONLOSECONTEXT_IID_STR "b0afc2eb-0895-4509-98de-5c383d160694"

#define NS_IWEBGLEXTENSIONLOSECONTEXT_IID \
  {0xb0afc2eb, 0x0895, 0x4509, \
    { 0x98, 0xde, 0x5c, 0x38, 0x3d, 0x16, 0x06, 0x94 }}

class NS_NO_VTABLE nsIWebGLExtensionLoseContext : public nsIWebGLExtension {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IWEBGLEXTENSIONLOSECONTEXT_IID)

  /* void loseContext (); */
  NS_IMETHOD LoseContext(void) = 0;

  /* void restoreContext (); */
  NS_IMETHOD RestoreContext(void) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIWebGLExtensionLoseContext, NS_IWEBGLEXTENSIONLOSECONTEXT_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIWEBGLEXTENSIONLOSECONTEXT \
  NS_IMETHOD LoseContext(void); \
  NS_IMETHOD RestoreContext(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIWEBGLEXTENSIONLOSECONTEXT(_to) \
  NS_IMETHOD LoseContext(void) { return _to LoseContext(); } \
  NS_IMETHOD RestoreContext(void) { return _to RestoreContext(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIWEBGLEXTENSIONLOSECONTEXT(_to) \
  NS_IMETHOD LoseContext(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->LoseContext(); } \
  NS_IMETHOD RestoreContext(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->RestoreContext(); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class nsWebGLExtensionLoseContext : public nsIWebGLExtensionLoseContext
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIWEBGLEXTENSIONLOSECONTEXT

  nsWebGLExtensionLoseContext();

private:
  ~nsWebGLExtensionLoseContext();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsWebGLExtensionLoseContext, nsIWebGLExtensionLoseContext)

nsWebGLExtensionLoseContext::nsWebGLExtensionLoseContext()
{
  /* member initializers and constructor code */
}

nsWebGLExtensionLoseContext::~nsWebGLExtensionLoseContext()
{
  /* destructor code */
}

/* void loseContext (); */
NS_IMETHODIMP nsWebGLExtensionLoseContext::LoseContext()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void restoreContext (); */
NS_IMETHODIMP nsWebGLExtensionLoseContext::RestoreContext()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif


/* starting interface:    nsIWebGLExtensionTextureFilterAnisotropic */
#define NS_IWEBGLEXTENSIONTEXTUREFILTERANISOTROPIC_IID_STR "73bfb64d-94bd-4a7a-9eab-6b6d32e57aa0"

#define NS_IWEBGLEXTENSIONTEXTUREFILTERANISOTROPIC_IID \
  {0x73bfb64d, 0x94bd, 0x4a7a, \
    { 0x9e, 0xab, 0x6b, 0x6d, 0x32, 0xe5, 0x7a, 0xa0 }}

class NS_NO_VTABLE nsIWebGLExtensionTextureFilterAnisotropic : public nsIWebGLExtension {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IWEBGLEXTENSIONTEXTUREFILTERANISOTROPIC_IID)

  enum {
    TEXTURE_MAX_ANISOTROPY_EXT = 34046U,
    MAX_TEXTURE_MAX_ANISOTROPY_EXT = 34047U
  };

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIWebGLExtensionTextureFilterAnisotropic, NS_IWEBGLEXTENSIONTEXTUREFILTERANISOTROPIC_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIWEBGLEXTENSIONTEXTUREFILTERANISOTROPIC \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIWEBGLEXTENSIONTEXTUREFILTERANISOTROPIC(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIWEBGLEXTENSIONTEXTUREFILTERANISOTROPIC(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class nsWebGLExtensionTextureFilterAnisotropic : public nsIWebGLExtensionTextureFilterAnisotropic
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIWEBGLEXTENSIONTEXTUREFILTERANISOTROPIC

  nsWebGLExtensionTextureFilterAnisotropic();

private:
  ~nsWebGLExtensionTextureFilterAnisotropic();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsWebGLExtensionTextureFilterAnisotropic, nsIWebGLExtensionTextureFilterAnisotropic)

nsWebGLExtensionTextureFilterAnisotropic::nsWebGLExtensionTextureFilterAnisotropic()
{
  /* member initializers and constructor code */
}

nsWebGLExtensionTextureFilterAnisotropic::~nsWebGLExtensionTextureFilterAnisotropic()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif


/* starting interface:    nsIWebGLExtensionCompressedTextureS3TC */
#define NS_IWEBGLEXTENSIONCOMPRESSEDTEXTURES3TC_IID_STR "a1508b6f-f2ab-44cf-bbb4-3cfb339e1e8a"

#define NS_IWEBGLEXTENSIONCOMPRESSEDTEXTURES3TC_IID \
  {0xa1508b6f, 0xf2ab, 0x44cf, \
    { 0xbb, 0xb4, 0x3c, 0xfb, 0x33, 0x9e, 0x1e, 0x8a }}

class NS_NO_VTABLE nsIWebGLExtensionCompressedTextureS3TC : public nsIWebGLExtension {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IWEBGLEXTENSIONCOMPRESSEDTEXTURES3TC_IID)

  enum {
    COMPRESSED_RGB_S3TC_DXT1_EXT = 33776U,
    COMPRESSED_RGBA_S3TC_DXT1_EXT = 33777U,
    COMPRESSED_RGBA_S3TC_DXT3_EXT = 33778U,
    COMPRESSED_RGBA_S3TC_DXT5_EXT = 33779U
  };

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIWebGLExtensionCompressedTextureS3TC, NS_IWEBGLEXTENSIONCOMPRESSEDTEXTURES3TC_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIWEBGLEXTENSIONCOMPRESSEDTEXTURES3TC \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIWEBGLEXTENSIONCOMPRESSEDTEXTURES3TC(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIWEBGLEXTENSIONCOMPRESSEDTEXTURES3TC(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class nsWebGLExtensionCompressedTextureS3TC : public nsIWebGLExtensionCompressedTextureS3TC
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIWEBGLEXTENSIONCOMPRESSEDTEXTURES3TC

  nsWebGLExtensionCompressedTextureS3TC();

private:
  ~nsWebGLExtensionCompressedTextureS3TC();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsWebGLExtensionCompressedTextureS3TC, nsIWebGLExtensionCompressedTextureS3TC)

nsWebGLExtensionCompressedTextureS3TC::nsWebGLExtensionCompressedTextureS3TC()
{
  /* member initializers and constructor code */
}

nsWebGLExtensionCompressedTextureS3TC::~nsWebGLExtensionCompressedTextureS3TC()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif


/* starting interface:    nsIWebGLExtensionCompressedTextureATC */
#define NS_IWEBGLEXTENSIONCOMPRESSEDTEXTUREATC_IID_STR "9592637f-ee3b-4c42-8329-5c9ad47411c1"

#define NS_IWEBGLEXTENSIONCOMPRESSEDTEXTUREATC_IID \
  {0x9592637f, 0xee3b, 0x4c42, \
    { 0x83, 0x29, 0x5c, 0x9a, 0xd4, 0x74, 0x11, 0xc1 }}

class NS_NO_VTABLE nsIWebGLExtensionCompressedTextureATC : public nsIWebGLExtension {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IWEBGLEXTENSIONCOMPRESSEDTEXTUREATC_IID)

  enum {
    COMPRESSED_RGB_ATC_WEBGL = 35986U,
    COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL = 35987U,
    COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL = 34798U
  };

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIWebGLExtensionCompressedTextureATC, NS_IWEBGLEXTENSIONCOMPRESSEDTEXTUREATC_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIWEBGLEXTENSIONCOMPRESSEDTEXTUREATC \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIWEBGLEXTENSIONCOMPRESSEDTEXTUREATC(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIWEBGLEXTENSIONCOMPRESSEDTEXTUREATC(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class nsWebGLExtensionCompressedTextureATC : public nsIWebGLExtensionCompressedTextureATC
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIWEBGLEXTENSIONCOMPRESSEDTEXTUREATC

  nsWebGLExtensionCompressedTextureATC();

private:
  ~nsWebGLExtensionCompressedTextureATC();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsWebGLExtensionCompressedTextureATC, nsIWebGLExtensionCompressedTextureATC)

nsWebGLExtensionCompressedTextureATC::nsWebGLExtensionCompressedTextureATC()
{
  /* member initializers and constructor code */
}

nsWebGLExtensionCompressedTextureATC::~nsWebGLExtensionCompressedTextureATC()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif


/* starting interface:    nsIWebGLExtensionCompressedTexturePVRTC */
#define NS_IWEBGLEXTENSIONCOMPRESSEDTEXTUREPVRTC_IID_STR "c33aa5a1-035c-4dfa-b240-df71395ad0f8"

#define NS_IWEBGLEXTENSIONCOMPRESSEDTEXTUREPVRTC_IID \
  {0xc33aa5a1, 0x035c, 0x4dfa, \
    { 0xb2, 0x40, 0xdf, 0x71, 0x39, 0x5a, 0xd0, 0xf8 }}

class NS_NO_VTABLE nsIWebGLExtensionCompressedTexturePVRTC : public nsIWebGLExtension {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IWEBGLEXTENSIONCOMPRESSEDTEXTUREPVRTC_IID)

  enum {
    COMPRESSED_RGB_PVRTC_4BPPV1 = 35840U,
    COMPRESSED_RGB_PVRTC_2BPPV1 = 35841U,
    COMPRESSED_RGBA_PVRTC_4BPPV1 = 35842U,
    COMPRESSED_RGBA_PVRTC_2BPPV1 = 35843U
  };

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIWebGLExtensionCompressedTexturePVRTC, NS_IWEBGLEXTENSIONCOMPRESSEDTEXTUREPVRTC_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIWEBGLEXTENSIONCOMPRESSEDTEXTUREPVRTC \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIWEBGLEXTENSIONCOMPRESSEDTEXTUREPVRTC(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIWEBGLEXTENSIONCOMPRESSEDTEXTUREPVRTC(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class nsWebGLExtensionCompressedTexturePVRTC : public nsIWebGLExtensionCompressedTexturePVRTC
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIWEBGLEXTENSIONCOMPRESSEDTEXTUREPVRTC

  nsWebGLExtensionCompressedTexturePVRTC();

private:
  ~nsWebGLExtensionCompressedTexturePVRTC();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsWebGLExtensionCompressedTexturePVRTC, nsIWebGLExtensionCompressedTexturePVRTC)

nsWebGLExtensionCompressedTexturePVRTC::nsWebGLExtensionCompressedTexturePVRTC()
{
  /* member initializers and constructor code */
}

nsWebGLExtensionCompressedTexturePVRTC::~nsWebGLExtensionCompressedTexturePVRTC()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif


/* starting interface:    nsIWebGLExtensionDepthTexture */
#define NS_IWEBGLEXTENSIONDEPTHTEXTURE_IID_STR "ef36f000-c1b2-11e1-afa7-0800200c9a66"

#define NS_IWEBGLEXTENSIONDEPTHTEXTURE_IID \
  {0xef36f000, 0xc1b2, 0x11e1, \
    { 0xaf, 0xa7, 0x08, 0x00, 0x20, 0x0c, 0x9a, 0x66 }}

class NS_NO_VTABLE nsIWebGLExtensionDepthTexture : public nsIWebGLExtension {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IWEBGLEXTENSIONDEPTHTEXTURE_IID)

  enum {
    UNSIGNED_INT_24_8_WEBGL = 34042U
  };

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIWebGLExtensionDepthTexture, NS_IWEBGLEXTENSIONDEPTHTEXTURE_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIWEBGLEXTENSIONDEPTHTEXTURE \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIWEBGLEXTENSIONDEPTHTEXTURE(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIWEBGLEXTENSIONDEPTHTEXTURE(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class nsWebGLExtensionDepthTexture : public nsIWebGLExtensionDepthTexture
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIWEBGLEXTENSIONDEPTHTEXTURE

  nsWebGLExtensionDepthTexture();

private:
  ~nsWebGLExtensionDepthTexture();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsWebGLExtensionDepthTexture, nsIWebGLExtensionDepthTexture)

nsWebGLExtensionDepthTexture::nsWebGLExtensionDepthTexture()
{
  /* member initializers and constructor code */
}

nsWebGLExtensionDepthTexture::~nsWebGLExtensionDepthTexture()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif


/* starting interface:    nsIDOMWebGLRenderingContext */
#define NS_IDOMWEBGLRENDERINGCONTEXT_IID_STR "a1fdfb76-6a08-4a1a-b0c9-d92ef3357cb9"

#define NS_IDOMWEBGLRENDERINGCONTEXT_IID \
  {0xa1fdfb76, 0x6a08, 0x4a1a, \
    { 0xb0, 0xc9, 0xd9, 0x2e, 0xf3, 0x35, 0x7c, 0xb9 }}

class NS_NO_VTABLE nsIDOMWebGLRenderingContext : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IDOMWEBGLRENDERINGCONTEXT_IID)

  /* [noscript] DOMString mozGetUnderlyingParamString (in WebGLenum pname); */
  NS_IMETHOD MozGetUnderlyingParamString(WebGLenum pname, nsAString & _retval) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIDOMWebGLRenderingContext, NS_IDOMWEBGLRENDERINGCONTEXT_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIDOMWEBGLRENDERINGCONTEXT \
  NS_IMETHOD MozGetUnderlyingParamString(WebGLenum pname, nsAString & _retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIDOMWEBGLRENDERINGCONTEXT(_to) \
  NS_IMETHOD MozGetUnderlyingParamString(WebGLenum pname, nsAString & _retval) { return _to MozGetUnderlyingParamString(pname, _retval); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIDOMWEBGLRENDERINGCONTEXT(_to) \
  NS_IMETHOD MozGetUnderlyingParamString(WebGLenum pname, nsAString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->MozGetUnderlyingParamString(pname, _retval); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class nsDOMWebGLRenderingContext : public nsIDOMWebGLRenderingContext
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIDOMWEBGLRENDERINGCONTEXT

  nsDOMWebGLRenderingContext();

private:
  ~nsDOMWebGLRenderingContext();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsDOMWebGLRenderingContext, nsIDOMWebGLRenderingContext)

nsDOMWebGLRenderingContext::nsDOMWebGLRenderingContext()
{
  /* member initializers and constructor code */
}

nsDOMWebGLRenderingContext::~nsDOMWebGLRenderingContext()
{
  /* destructor code */
}

/* [noscript] DOMString mozGetUnderlyingParamString (in WebGLenum pname); */
NS_IMETHODIMP nsDOMWebGLRenderingContext::MozGetUnderlyingParamString(WebGLenum pname, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif


#endif /* __gen_nsIDOMWebGLRenderingContext_h__ */
