blob: fbc2ad5d1ccd7b51fc6916a47b00ff9516c8f3a1 [file] [log] [blame]
Geoff Lang2b5420c2014-11-19 14:20:15 -05001//
2// Copyright (c) 2012-2014 The ANGLE Project Authors. All rights reserved.
3// Use of this source code is governed by a BSD-style license that can be
4// found in the LICENSE file.
5//
6
7// Renderer.cpp: Implements EGL dependencies for creating and destroying Renderer instances.
8
9#include "common/utilities.h"
10#include "libANGLE/AttributeMap.h"
11#include "libANGLE/renderer/Renderer.h"
12
13#include <EGL/eglext.h>
14
15namespace rx
16{
17
18Renderer::Renderer()
19 : mCapsInitialized(false),
20 mWorkaroundsInitialized(false)
21{
22}
23
24Renderer::~Renderer()
25{
26}
27
28const gl::Caps &Renderer::getRendererCaps() const
29{
30 if (!mCapsInitialized)
31 {
32 generateCaps(&mCaps, &mTextureCaps, &mExtensions);
33 mCapsInitialized = true;
34 }
35
36 return mCaps;
37}
38
39const gl::TextureCapsMap &Renderer::getRendererTextureCaps() const
40{
41 if (!mCapsInitialized)
42 {
43 generateCaps(&mCaps, &mTextureCaps, &mExtensions);
44 mCapsInitialized = true;
45 }
46
47 return mTextureCaps;
48}
49
50const gl::Extensions &Renderer::getRendererExtensions() const
51{
52 if (!mCapsInitialized)
53 {
54 generateCaps(&mCaps, &mTextureCaps, &mExtensions);
55 mCapsInitialized = true;
56 }
57
58 return mExtensions;
59}
60
61const Workarounds &Renderer::getWorkarounds() const
62{
63 if (!mWorkaroundsInitialized)
64 {
65 mWorkarounds = generateWorkarounds();
66 mWorkaroundsInitialized = true;
67 }
68
69 return mWorkarounds;
70}
71
72}