// // Copyright 2014 The ANGLE Project Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. //
// ProgramImpl.h: Defines the abstract rx::ProgramImpl class.
// Provides a mechanism to access the result of asynchronous linking. class LinkEvent : angle::NonCopyable
{ public: virtual ~LinkEvent() {}
// Please be aware that these methods may be called under a gl::Context other // than the one where the LinkEvent was created. // // Waits until the linking is actually done. Returns true if the linking // succeeded, false otherwise. virtual angle::Result wait(const gl::Context *context) = 0; // Peeks whether the linking is still ongoing. virtualbool isLinking() = 0;
};
// Wraps an already done linking. class LinkEventDone final : public LinkEvent
{ public:
LinkEventDone(angle::Result result) : mResult(result) {}
angle::Result wait(const gl::Context *context) override; bool isLinking() override;
// Done in the back-end to avoid having to keep a system copy of uniform data. virtualvoid getUniformfv(const gl::Context *context,
GLint location,
GLfloat *params) const = 0; virtualvoid getUniformiv(const gl::Context *context, GLint location, GLint *params) const = 0; virtualvoid getUniformuiv(const gl::Context *context,
GLint location,
GLuint *params) const = 0;
// Implementation-specific method for ignoring unreferenced uniforms. Some implementations may // perform more extensive analysis and ignore some locations that ANGLE doesn't detect as // unreferenced. This method is not required to be overriden by a back-end. virtualvoid markUnusedUniformLocations(std::vector<gl::VariableLocation> *uniformLocations,
std::vector<gl::SamplerBinding> *samplerBindings,
std::vector<gl::ImageBinding> *imageBindings)
{}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.