OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef GPU_COMMAND_BUFFER_SERVICE_MEMORY_PROGRAM_CACHE_H_ | 5 #ifndef GPU_COMMAND_BUFFER_SERVICE_MEMORY_PROGRAM_CACHE_H_ |
6 #define GPU_COMMAND_BUFFER_SERVICE_MEMORY_PROGRAM_CACHE_H_ | 6 #define GPU_COMMAND_BUFFER_SERVICE_MEMORY_PROGRAM_CACHE_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 #include <string> | 9 #include <string> |
10 | 10 |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
50 class ProgramCacheValue : public base::RefCounted<ProgramCacheValue> { | 50 class ProgramCacheValue : public base::RefCounted<ProgramCacheValue> { |
51 public: | 51 public: |
52 ProgramCacheValue(GLsizei length, | 52 ProgramCacheValue(GLsizei length, |
53 GLenum format, | 53 GLenum format, |
54 const char* data, | 54 const char* data, |
55 const std::string& program_hash, | 55 const std::string& program_hash, |
56 const char* shader_0_hash, | 56 const char* shader_0_hash, |
57 const AttributeMap& attrib_map_0, | 57 const AttributeMap& attrib_map_0, |
58 const UniformMap& uniform_map_0, | 58 const UniformMap& uniform_map_0, |
59 const VaryingMap& varying_map_0, | 59 const VaryingMap& varying_map_0, |
| 60 const AttributeList& output_variable_list_0, |
60 const char* shader_1_hash, | 61 const char* shader_1_hash, |
61 const AttributeMap& attrib_map_1, | 62 const AttributeMap& attrib_map_1, |
62 const UniformMap& uniform_map_1, | 63 const UniformMap& uniform_map_1, |
63 const VaryingMap& varying_map_1, | 64 const VaryingMap& varying_map_1, |
| 65 const AttributeList& output_variable_list_1, |
64 MemoryProgramCache* program_cache); | 66 MemoryProgramCache* program_cache); |
65 | 67 |
66 GLsizei length() const { | 68 GLsizei length() const { |
67 return length_; | 69 return length_; |
68 } | 70 } |
69 | 71 |
70 GLenum format() const { | 72 GLenum format() const { |
71 return format_; | 73 return format_; |
72 } | 74 } |
73 | 75 |
(...skipping 10 matching lines...) Expand all Loading... |
84 } | 86 } |
85 | 87 |
86 const UniformMap& uniform_map_0() const { | 88 const UniformMap& uniform_map_0() const { |
87 return uniform_map_0_; | 89 return uniform_map_0_; |
88 } | 90 } |
89 | 91 |
90 const VaryingMap& varying_map_0() const { | 92 const VaryingMap& varying_map_0() const { |
91 return varying_map_0_; | 93 return varying_map_0_; |
92 } | 94 } |
93 | 95 |
| 96 const AttributeList& output_variable_list_0() const { |
| 97 return output_variable_list_0_; |
| 98 } |
| 99 |
94 const std::string& shader_1_hash() const { | 100 const std::string& shader_1_hash() const { |
95 return shader_1_hash_; | 101 return shader_1_hash_; |
96 } | 102 } |
97 | 103 |
98 const AttributeMap& attrib_map_1() const { | 104 const AttributeMap& attrib_map_1() const { |
99 return attrib_map_1_; | 105 return attrib_map_1_; |
100 } | 106 } |
101 | 107 |
102 const UniformMap& uniform_map_1() const { | 108 const UniformMap& uniform_map_1() const { |
103 return uniform_map_1_; | 109 return uniform_map_1_; |
104 } | 110 } |
105 | 111 |
106 const VaryingMap& varying_map_1() const { | 112 const VaryingMap& varying_map_1() const { |
107 return varying_map_1_; | 113 return varying_map_1_; |
108 } | 114 } |
109 | 115 |
| 116 const AttributeList& output_variable_list_1() const { |
| 117 return output_variable_list_1_; |
| 118 } |
| 119 |
110 private: | 120 private: |
111 friend class base::RefCounted<ProgramCacheValue>; | 121 friend class base::RefCounted<ProgramCacheValue>; |
112 | 122 |
113 ~ProgramCacheValue(); | 123 ~ProgramCacheValue(); |
114 | 124 |
115 const GLsizei length_; | 125 const GLsizei length_; |
116 const GLenum format_; | 126 const GLenum format_; |
117 const scoped_ptr<const char[]> data_; | 127 const scoped_ptr<const char[]> data_; |
118 const std::string program_hash_; | 128 const std::string program_hash_; |
119 const std::string shader_0_hash_; | 129 const std::string shader_0_hash_; |
120 const AttributeMap attrib_map_0_; | 130 const AttributeMap attrib_map_0_; |
121 const UniformMap uniform_map_0_; | 131 const UniformMap uniform_map_0_; |
122 const VaryingMap varying_map_0_; | 132 const VaryingMap varying_map_0_; |
| 133 const AttributeList output_variable_list_0_; |
123 const std::string shader_1_hash_; | 134 const std::string shader_1_hash_; |
124 const AttributeMap attrib_map_1_; | 135 const AttributeMap attrib_map_1_; |
125 const UniformMap uniform_map_1_; | 136 const UniformMap uniform_map_1_; |
126 const VaryingMap varying_map_1_; | 137 const VaryingMap varying_map_1_; |
| 138 const AttributeList output_variable_list_1_; |
127 MemoryProgramCache* const program_cache_; | 139 MemoryProgramCache* const program_cache_; |
128 | 140 |
129 DISALLOW_COPY_AND_ASSIGN(ProgramCacheValue); | 141 DISALLOW_COPY_AND_ASSIGN(ProgramCacheValue); |
130 }; | 142 }; |
131 | 143 |
132 friend class ProgramCacheValue; | 144 friend class ProgramCacheValue; |
133 | 145 |
134 typedef base::MRUCache<std::string, | 146 typedef base::MRUCache<std::string, |
135 scoped_refptr<ProgramCacheValue> > ProgramMRUCache; | 147 scoped_refptr<ProgramCacheValue> > ProgramMRUCache; |
136 | 148 |
137 const size_t max_size_bytes_; | 149 const size_t max_size_bytes_; |
138 size_t curr_size_bytes_; | 150 size_t curr_size_bytes_; |
139 ProgramMRUCache store_; | 151 ProgramMRUCache store_; |
140 | 152 |
141 DISALLOW_COPY_AND_ASSIGN(MemoryProgramCache); | 153 DISALLOW_COPY_AND_ASSIGN(MemoryProgramCache); |
142 }; | 154 }; |
143 | 155 |
144 } // namespace gles2 | 156 } // namespace gles2 |
145 } // namespace gpu | 157 } // namespace gpu |
146 | 158 |
147 #endif // GPU_COMMAND_BUFFER_SERVICE_MEMORY_PROGRAM_CACHE_H_ | 159 #endif // GPU_COMMAND_BUFFER_SERVICE_MEMORY_PROGRAM_CACHE_H_ |
OLD | NEW |