#include "gpu/command_buffer/service/context_group.h"
#include <stddef.h>
#include <stdint.h>
#include <algorithm>
#include <memory>
#include <string>
#include <vector>
#include "base/command_line.h"
#include "base/memory/raw_ptr.h"
#include "build/build_config.h"
#include "gpu/command_buffer/service/buffer_manager.h"
#include "gpu/command_buffer/service/decoder_context.h"
#include "gpu/command_buffer/service/framebuffer_manager.h"
#include "gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h"
#include "gpu/command_buffer/service/passthrough_discardable_manager.h"
#include "gpu/command_buffer/service/program_manager.h"
#include "gpu/command_buffer/service/renderbuffer_manager.h"
#include "gpu/command_buffer/service/sampler_manager.h"
#include "gpu/command_buffer/service/service_discardable_manager.h"
#include "gpu/command_buffer/service/shader_manager.h"
#include "gpu/command_buffer/service/shared_image/shared_image_factory.h"
#include "gpu/command_buffer/service/texture_manager.h"
#include "gpu/config/gpu_preferences.h"
#include "ui/gl/gl_bindings.h"
#include "ui/gl/gl_version_info.h"
#include "ui/gl/progress_reporter.h"
namespace gpu {
namespace gles2 {
namespace {
void GetIntegerv(GLenum pname, uint32_t* var) { … }
}
DisallowedFeatures AdjustDisallowedFeatures(
ContextType context_type, const DisallowedFeatures& disallowed_features) { … }
ContextGroup::ContextGroup(
const GpuPreferences& gpu_preferences,
bool supports_passthrough_command_decoders,
std::unique_ptr<MemoryTracker> memory_tracker,
ShaderTranslatorCache* shader_translator_cache,
FramebufferCompletenessCache* framebuffer_completeness_cache,
const scoped_refptr<FeatureInfo>& feature_info,
bool bind_generates_resource,
gl::ProgressReporter* progress_reporter,
const GpuFeatureInfo& gpu_feature_info,
ServiceDiscardableManager* discardable_manager,
PassthroughDiscardableManager* passthrough_discardable_manager,
SharedImageManager* shared_image_manager)
: … { … }
gpu::ContextResult ContextGroup::Initialize(
DecoderContext* decoder,
ContextType context_type,
const DisallowedFeatures& disallowed_features) { … }
namespace {
bool IsNull(const base::WeakPtr<DecoderContext>& decoder) { … }
template <typename T>
class WeakPtrEquals { … };
}
bool ContextGroup::HaveContexts() { … }
void ContextGroup::ReportProgress() { … }
void ContextGroup::Destroy(DecoderContext* decoder, bool have_context) { … }
uint32_t ContextGroup::GetMemRepresented() const { … }
void ContextGroup::LoseContexts(error::ContextLostReason reason) { … }
ContextGroup::~ContextGroup() { … }
bool ContextGroup::CheckGLFeature(GLint min_required, GLint* v) { … }
bool ContextGroup::CheckGLFeatureU(GLint min_required, uint32_t* v) { … }
bool ContextGroup::QueryGLFeature(
GLenum pname, GLint min_required, GLint* v) { … }
bool ContextGroup::QueryGLFeatureU(GLenum pname,
GLint min_required,
uint32_t* v) { … }
bool ContextGroup::GetBufferServiceId(
GLuint client_id, GLuint* service_id) const { … }
}
}