Files
palemoon27/dom/canvas/WebGLVertexArray.cpp
T
roytam1 f9c3c72b8c import changes from `dev' branch of rmottola/Arctic-Fox:
- Bug 1170842 - Part 1: Sort out ARB_framebuffer_object symbol queries. r=jgilbert (3cbaf14fc)
- Bug 1170842 - Part 2: Wrangle glGetInternalformativ symbols. r=jgilbert (f7a0c5cab)
- Bug 1114333 - "putImageData(imageData, 0, 0, 0, 0, 1, 1) unreasonably slow". r=bas (11043328c)
- Bug 1177271 - Add WebGLFormat format tables. - r=kamidphish (de39a313f)
- Bug 1156980 - Validate target in ImageData variants of TexImage2D/TexSubImage2D. r=jgilbert (7f2bdbaa9)
- Bug 1151930 - Check against updated length while appending. - r=kamidphish (fca204f81)
- Bug 896693 - Work around glCopyTexImage2D errors on framebuffers backed by IOSurface. r=jgilbert (8aaa916ac)
- Bug 1182371 - Misc WebGL cleanup. - r=kamidphish (05d1fff1d)
- Bug 1172992 - Send security info override from HttpChildChannel to the parent, r=jduell (c4480d779)
- Bug 1194847 - Part 1: Make it possible to tell whether the response of a channel has been synthesized; r=michal (e42b96400)
- Bug 1194847 - Part 2: Bypass CORS checks if the response of a channel has been synthesized; r=nsm (92b858d00)
- Bug 1183853 - Rename hasPermission() to permissionState(). r=mt,smaug (797b07991)
- Bug 1157250. Give PushSubscription an attribute serializer. r=nsm (dd3ee5547)
- Bug 1149271 - Remove subscriptionid. r=baku (0ecbdbfa6)
- Bug 1160333 - When denying permission, use the string 'PermissionDeniedError'. r=nsm (0c4628efb)
- Bug 1170817 - Fix unsubscribe() resolution value. r=dougt (ae7825429)
- Bug 1172667 - Use EXTRA_JS_MODULES for dom/push/ jsm files. r=dougt (e1fec67a6)
- Bug 1166350 - Patch 2 - Fix tests. a=bustage (6b72dfc46)
- Bug 1153504 - Add per-origin push quotas. r=nsm,mt,markh (c9cab6cb5)
- Bug 1183867 - Fix PushSubscription.unsubscribe() semantics r=mt resolve with false when subscription does not exist. true when successfully unregistered. reject with NetworkError in other cases. (6aa6804eb)
- BIN vs RESPATH (e2227b64e)
- Bug 1174420 - Package PushService launcher on B2G r=kitcambridge (b433c4eea)
- Bug 1184574 - Allow access to PushManager on ServiceWorker. r=kitcambridge,smaug,catalinb (6ceeb49fe)
- Bug 1170455 - Part 1: Reformat GetVertexAttrib function. r=jgilbert (7795a8d2a)
- Bug 1170455 - Part 2: Split vertex attribute functions into separate file. r=jgilbert (e18493902)
- Bug 1170455 - Part 3: Wrangle GetVertexAttribI symbols. r=jgilbert (e088f4e79)
- Bug 1170455 - Part 4: Track the type of the generic vertex attribute. r=jgilbert (f8cf490aa)
- Bug 1192071 - use llvm-symbolizer when running jit-tests under TSan; r=mshal (97dc9d659)
- Bug 1192278 - empower |make check-jit-test| to specify a subset of tests to run; r=terrence (9fe90b546)
- Bug 1154480 - Make new Uint8Array().set([], -1) throw a RangeError, not merely an Error. r=till (57345e639)
2021-12-20 10:48:38 +08:00

76 lines
1.9 KiB
C++

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "WebGLVertexArray.h"
#include "GLContext.h"
#include "mozilla/dom/WebGLRenderingContextBinding.h"
#include "WebGLBuffer.h"
#include "WebGLContext.h"
#include "WebGLVertexArrayGL.h"
#include "WebGLVertexArrayFake.h"
namespace mozilla {
JSObject*
WebGLVertexArray::WrapObject(JSContext* cx, JS::Handle<JSObject*> givenProto)
{
return dom::WebGLVertexArrayObjectOESBinding::Wrap(cx, this, givenProto);
}
WebGLVertexArray::WebGLVertexArray(WebGLContext* webgl)
: WebGLContextBoundObject(webgl)
, mGLName(0)
{
mContext->mVertexArrays.insertBack(this);
}
WebGLVertexArray*
WebGLVertexArray::Create(WebGLContext* webgl)
{
WebGLVertexArray* array;
if (webgl->gl->IsSupported(gl::GLFeature::vertex_array_object)) {
array = new WebGLVertexArrayGL(webgl);
} else {
array = new WebGLVertexArrayFake(webgl);
}
return array;
}
void
WebGLVertexArray::Delete()
{
DeleteImpl();
LinkedListElement<WebGLVertexArray>::removeFrom(mContext->mVertexArrays);
mElementArrayBuffer = nullptr;
mAttribs.Clear();
}
bool
WebGLVertexArray::IsVertexArray()
{
return IsVertexArrayImpl();
}
void
WebGLVertexArray::EnsureAttrib(GLuint index)
{
MOZ_ASSERT(index < GLuint(mContext->mGLMaxVertexAttribs));
if (index >= mAttribs.Length()) {
mAttribs.SetLength(index + 1);
}
}
NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(WebGLVertexArray,
mAttribs,
mElementArrayBuffer)
NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(WebGLVertexArray, AddRef)
NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(WebGLVertexArray, Release)
} // namespace mozilla