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 <stddef.h> | 8 #include <stddef.h> |
9 | 9 |
10 #include <map> | 10 #include <map> |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
57 public: | 57 public: |
58 ProgramCacheValue(GLsizei length, | 58 ProgramCacheValue(GLsizei length, |
59 GLenum format, | 59 GLenum format, |
60 const char* data, | 60 const char* data, |
61 const std::string& program_hash, | 61 const std::string& program_hash, |
62 const char* shader_0_hash, | 62 const char* shader_0_hash, |
63 const AttributeMap& attrib_map_0, | 63 const AttributeMap& attrib_map_0, |
64 const UniformMap& uniform_map_0, | 64 const UniformMap& uniform_map_0, |
65 const VaryingMap& varying_map_0, | 65 const VaryingMap& varying_map_0, |
66 const OutputVariableList& output_variable_list_0, | 66 const OutputVariableList& output_variable_list_0, |
| 67 const InterfaceBlockMap& interface_block_map_0, |
67 const char* shader_1_hash, | 68 const char* shader_1_hash, |
68 const AttributeMap& attrib_map_1, | 69 const AttributeMap& attrib_map_1, |
69 const UniformMap& uniform_map_1, | 70 const UniformMap& uniform_map_1, |
70 const VaryingMap& varying_map_1, | 71 const VaryingMap& varying_map_1, |
71 const OutputVariableList& output_variable_list_1, | 72 const OutputVariableList& output_variable_list_1, |
| 73 const InterfaceBlockMap& interface_block_map_1, |
72 MemoryProgramCache* program_cache); | 74 MemoryProgramCache* program_cache); |
73 | 75 |
74 GLsizei length() const { | 76 GLsizei length() const { |
75 return length_; | 77 return length_; |
76 } | 78 } |
77 | 79 |
78 GLenum format() const { | 80 GLenum format() const { |
79 return format_; | 81 return format_; |
80 } | 82 } |
81 | 83 |
(...skipping 14 matching lines...) Expand all Loading... |
96 } | 98 } |
97 | 99 |
98 const VaryingMap& varying_map_0() const { | 100 const VaryingMap& varying_map_0() const { |
99 return varying_map_0_; | 101 return varying_map_0_; |
100 } | 102 } |
101 | 103 |
102 const OutputVariableList& output_variable_list_0() const { | 104 const OutputVariableList& output_variable_list_0() const { |
103 return output_variable_list_0_; | 105 return output_variable_list_0_; |
104 } | 106 } |
105 | 107 |
| 108 const InterfaceBlockMap& interface_block_map_0() const { |
| 109 return interface_block_map_0_; |
| 110 } |
| 111 |
106 const std::string& shader_1_hash() const { | 112 const std::string& shader_1_hash() const { |
107 return shader_1_hash_; | 113 return shader_1_hash_; |
108 } | 114 } |
109 | 115 |
110 const AttributeMap& attrib_map_1() const { | 116 const AttributeMap& attrib_map_1() const { |
111 return attrib_map_1_; | 117 return attrib_map_1_; |
112 } | 118 } |
113 | 119 |
114 const UniformMap& uniform_map_1() const { | 120 const UniformMap& uniform_map_1() const { |
115 return uniform_map_1_; | 121 return uniform_map_1_; |
116 } | 122 } |
117 | 123 |
118 const VaryingMap& varying_map_1() const { | 124 const VaryingMap& varying_map_1() const { |
119 return varying_map_1_; | 125 return varying_map_1_; |
120 } | 126 } |
121 | 127 |
122 const OutputVariableList& output_variable_list_1() const { | 128 const OutputVariableList& output_variable_list_1() const { |
123 return output_variable_list_1_; | 129 return output_variable_list_1_; |
124 } | 130 } |
125 | 131 |
| 132 const InterfaceBlockMap& interface_block_map_1() const { |
| 133 return interface_block_map_1_; |
| 134 } |
| 135 |
126 private: | 136 private: |
127 friend class base::RefCounted<ProgramCacheValue>; | 137 friend class base::RefCounted<ProgramCacheValue>; |
128 | 138 |
129 ~ProgramCacheValue(); | 139 ~ProgramCacheValue(); |
130 | 140 |
131 const GLsizei length_; | 141 const GLsizei length_; |
132 const GLenum format_; | 142 const GLenum format_; |
133 const std::unique_ptr<const char[]> data_; | 143 const std::unique_ptr<const char[]> data_; |
134 const std::string program_hash_; | 144 const std::string program_hash_; |
135 const std::string shader_0_hash_; | 145 const std::string shader_0_hash_; |
136 const AttributeMap attrib_map_0_; | 146 const AttributeMap attrib_map_0_; |
137 const UniformMap uniform_map_0_; | 147 const UniformMap uniform_map_0_; |
138 const VaryingMap varying_map_0_; | 148 const VaryingMap varying_map_0_; |
139 const OutputVariableList output_variable_list_0_; | 149 const OutputVariableList output_variable_list_0_; |
| 150 const InterfaceBlockMap interface_block_map_0_; |
140 const std::string shader_1_hash_; | 151 const std::string shader_1_hash_; |
141 const AttributeMap attrib_map_1_; | 152 const AttributeMap attrib_map_1_; |
142 const UniformMap uniform_map_1_; | 153 const UniformMap uniform_map_1_; |
143 const VaryingMap varying_map_1_; | 154 const VaryingMap varying_map_1_; |
144 const OutputVariableList output_variable_list_1_; | 155 const OutputVariableList output_variable_list_1_; |
| 156 const InterfaceBlockMap interface_block_map_1_; |
145 MemoryProgramCache* const program_cache_; | 157 MemoryProgramCache* const program_cache_; |
146 | 158 |
147 DISALLOW_COPY_AND_ASSIGN(ProgramCacheValue); | 159 DISALLOW_COPY_AND_ASSIGN(ProgramCacheValue); |
148 }; | 160 }; |
149 | 161 |
150 friend class ProgramCacheValue; | 162 friend class ProgramCacheValue; |
151 | 163 |
152 typedef base::MRUCache<std::string, | 164 typedef base::MRUCache<std::string, |
153 scoped_refptr<ProgramCacheValue> > ProgramMRUCache; | 165 scoped_refptr<ProgramCacheValue> > ProgramMRUCache; |
154 | 166 |
155 const size_t max_size_bytes_; | 167 const size_t max_size_bytes_; |
156 const bool disable_gpu_shader_disk_cache_; | 168 const bool disable_gpu_shader_disk_cache_; |
157 size_t curr_size_bytes_; | 169 size_t curr_size_bytes_; |
158 ProgramMRUCache store_; | 170 ProgramMRUCache store_; |
159 | 171 |
160 DISALLOW_COPY_AND_ASSIGN(MemoryProgramCache); | 172 DISALLOW_COPY_AND_ASSIGN(MemoryProgramCache); |
161 }; | 173 }; |
162 | 174 |
163 } // namespace gles2 | 175 } // namespace gles2 |
164 } // namespace gpu | 176 } // namespace gpu |
165 | 177 |
166 #endif // GPU_COMMAND_BUFFER_SERVICE_MEMORY_PROGRAM_CACHE_H_ | 178 #endif // GPU_COMMAND_BUFFER_SERVICE_MEMORY_PROGRAM_CACHE_H_ |
OLD | NEW |