mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
3d2da57b98
I'd like to unconditionally use this work around for now. This bug affects the current version of ANGLE and older versions of Mesa (not just llvmpipe like we were checking for). Once ANGLE is fixed we can consider disabling this on Windows again. FWIW, Chrome does something like this unconditionally.
63 lines
1.3 KiB
C++
63 lines
1.3 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 "WebGLVertexArrayGL.h"
|
|
|
|
#include "GLContext.h"
|
|
#include "WebGLContext.h"
|
|
|
|
namespace mozilla {
|
|
|
|
WebGLVertexArrayGL::WebGLVertexArrayGL(WebGLContext* webgl)
|
|
: WebGLVertexArray(webgl)
|
|
, mIsVAO(false)
|
|
{ }
|
|
|
|
WebGLVertexArrayGL::~WebGLVertexArrayGL()
|
|
{
|
|
DeleteOnce();
|
|
}
|
|
|
|
void
|
|
WebGLVertexArrayGL::DeleteImpl()
|
|
{
|
|
mElementArrayBuffer = nullptr;
|
|
|
|
mContext->MakeContextCurrent();
|
|
mContext->gl->fDeleteVertexArrays(1, &mGLName);
|
|
|
|
mIsVAO = false;
|
|
}
|
|
|
|
void
|
|
WebGLVertexArrayGL::BindVertexArrayImpl()
|
|
{
|
|
mContext->mBoundVertexArray = this;
|
|
mContext->gl->fBindVertexArray(mGLName);
|
|
|
|
mIsVAO = true;
|
|
}
|
|
|
|
void
|
|
WebGLVertexArrayGL::GenVertexArray()
|
|
{
|
|
mContext->gl->fGenVertexArrays(1, &mGLName);
|
|
}
|
|
|
|
bool
|
|
WebGLVertexArrayGL::IsVertexArrayImpl()
|
|
{
|
|
gl::GLContext* gl = mContext->gl;
|
|
if (gl->WorkAroundDriverBugs())
|
|
{
|
|
return mIsVAO;
|
|
}
|
|
|
|
mContext->MakeContextCurrent();
|
|
return mContext->gl->fIsVertexArray(mGLName) != 0;
|
|
}
|
|
|
|
} // namespace mozilla
|