// 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. #ifndef CHROMIUMSubscribeUniform_h #define CHROMIUMSubscribeUniform_h #include "modules/webgl/WebGLExtension.h" namespace blink { class CHROMIUMValuebuffer; class CHROMIUMSubscribeUniform final : public WebGLExtension { DEFINE_WRAPPERTYPEINFO(); public: static CHROMIUMSubscribeUniform* create(WebGLRenderingContextBase*); static bool supported(WebGLRenderingContextBase*); static const char* extensionName(); ~CHROMIUMSubscribeUniform() override; WebGLExtensionName name() const override; CHROMIUMValuebuffer* createValuebufferCHROMIUM(); void deleteValuebufferCHROMIUM(CHROMIUMValuebuffer*); GLboolean isValuebufferCHROMIUM(CHROMIUMValuebuffer*); void bindValuebufferCHROMIUM(GLenum target, CHROMIUMValuebuffer*); void subscribeValueCHROMIUM(GLenum target, GLenum subscription); void populateSubscribedValuesCHROMIUM(GLenum target); void uniformValuebufferCHROMIUM(const WebGLUniformLocation*, GLenum target, GLenum subscription); private: explicit CHROMIUMSubscribeUniform(WebGLRenderingContextBase*); }; } // namespace blink #endif // CHROMIUMSubscribeUniform_h