blob: 5108727c3b2aa3f1233e7072995e3e659ca52646 [file] [log] [blame] [edit]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "config.h"
#include "modules/webgl/CHROMIUMSubscribeUniform.h"
#include "modules/webgl/CHROMIUMValuebuffer.h"
namespace blink {
CHROMIUMSubscribeUniform::CHROMIUMSubscribeUniform(WebGLRenderingContextBase* context)
: WebGLExtension(context)
{
context->extensionsUtil()->ensureExtensionEnabled("GL_CHROMIUM_subscribe_uniform");
}
CHROMIUMSubscribeUniform::~CHROMIUMSubscribeUniform()
{
}
WebGLExtensionName CHROMIUMSubscribeUniform::name() const
{
return CHROMIUMSubscribeUniformName;
}
CHROMIUMSubscribeUniform* CHROMIUMSubscribeUniform::create(WebGLRenderingContextBase* context)
{
return new CHROMIUMSubscribeUniform(context);
}
bool CHROMIUMSubscribeUniform::supported(WebGLRenderingContextBase* context)
{
return context->extensionsUtil()->supportsExtension("GL_CHROMIUM_subscribe_uniform");
}
const char* CHROMIUMSubscribeUniform::extensionName()
{
return "CHROMIUM_subscribe_uniform";
}
CHROMIUMValuebuffer* CHROMIUMSubscribeUniform::createValuebufferCHROMIUM()
{
WebGLExtensionScopedContext scoped(this);
if (scoped.isLost())
return nullptr;
return scoped.context()->createValuebufferCHROMIUM();
}
void CHROMIUMSubscribeUniform::deleteValuebufferCHROMIUM(CHROMIUMValuebuffer* valuebuffer)
{
WebGLExtensionScopedContext scoped(this);
if (scoped.isLost() || !valuebuffer)
return;
scoped.context()->deleteValuebufferCHROMIUM(valuebuffer);
}
GLboolean CHROMIUMSubscribeUniform::isValuebufferCHROMIUM(CHROMIUMValuebuffer* valuebuffer)
{
WebGLExtensionScopedContext scoped(this);
if (scoped.isLost() || !valuebuffer)
return 0;
return scoped.context()->isValuebufferCHROMIUM(valuebuffer);
}
void CHROMIUMSubscribeUniform::bindValuebufferCHROMIUM(GLenum target, CHROMIUMValuebuffer* valuebuffer)
{
WebGLExtensionScopedContext scoped(this);
if (scoped.isLost() || !valuebuffer)
return;
scoped.context()->bindValuebufferCHROMIUM(target, valuebuffer);
}
void CHROMIUMSubscribeUniform::subscribeValueCHROMIUM(GLenum target, GLenum subscription)
{
WebGLExtensionScopedContext scoped(this);
if (scoped.isLost())
return;
scoped.context()->subscribeValueCHROMIUM(target, subscription);
}
void CHROMIUMSubscribeUniform::populateSubscribedValuesCHROMIUM(GLenum target)
{
WebGLExtensionScopedContext scoped(this);
if (scoped.isLost())
return;
scoped.context()->populateSubscribedValuesCHROMIUM(target);
}
void CHROMIUMSubscribeUniform::uniformValuebufferCHROMIUM(const WebGLUniformLocation* location, GLenum target, GLenum subscription)
{
WebGLExtensionScopedContext scoped(this);
if (scoped.isLost() || !location)
return;
scoped.context()->uniformValuebufferCHROMIUM(location, target, subscription);
}
} // namespace blink