1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 // This file is auto-generated from 6 // gpu/command_buffer/build_gles2_cmd_buffer.py 7 // It's formatted by clang-format using chromium coding style: 8 // clang-format -i -style=chromium filename 9 // DO NOT EDIT! 10 11 // This file is included by gles2_interface.h to declare the 12 // GL api functions. 13 #ifndef GPU_COMMAND_BUFFER_CLIENT_GLES2_INTERFACE_AUTOGEN_H_ 14 #define GPU_COMMAND_BUFFER_CLIENT_GLES2_INTERFACE_AUTOGEN_H_ 15 16 virtual void ActiveTexture(GLenum texture) = 0; 17 virtual void AttachShader(GLuint program, GLuint shader) = 0; 18 virtual void BindAttribLocation(GLuint program, 19 GLuint index, 20 const char* name) = 0; 21 virtual void BindBuffer(GLenum target, GLuint buffer) = 0; 22 virtual void BindFramebuffer(GLenum target, GLuint framebuffer) = 0; 23 virtual void BindRenderbuffer(GLenum target, GLuint renderbuffer) = 0; 24 virtual void BindTexture(GLenum target, GLuint texture) = 0; 25 virtual void BlendColor(GLclampf red, 26 GLclampf green, 27 GLclampf blue, 28 GLclampf alpha) = 0; 29 virtual void BlendEquation(GLenum mode) = 0; 30 virtual void BlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha) = 0; 31 virtual void BlendFunc(GLenum sfactor, GLenum dfactor) = 0; 32 virtual void BlendFuncSeparate(GLenum srcRGB, 33 GLenum dstRGB, 34 GLenum srcAlpha, 35 GLenum dstAlpha) = 0; 36 virtual void BufferData(GLenum target, 37 GLsizeiptr size, 38 const void* data, 39 GLenum usage) = 0; 40 virtual void BufferSubData(GLenum target, 41 GLintptr offset, 42 GLsizeiptr size, 43 const void* data) = 0; 44 virtual GLenum CheckFramebufferStatus(GLenum target) = 0; 45 virtual void Clear(GLbitfield mask) = 0; 46 virtual void ClearColor(GLclampf red, 47 GLclampf green, 48 GLclampf blue, 49 GLclampf alpha) = 0; 50 virtual void ClearDepthf(GLclampf depth) = 0; 51 virtual void ClearStencil(GLint s) = 0; 52 virtual void ColorMask(GLboolean red, 53 GLboolean green, 54 GLboolean blue, 55 GLboolean alpha) = 0; 56 virtual void CompileShader(GLuint shader) = 0; 57 virtual void CompressedTexImage2D(GLenum target, 58 GLint level, 59 GLenum internalformat, 60 GLsizei width, 61 GLsizei height, 62 GLint border, 63 GLsizei imageSize, 64 const void* data) = 0; 65 virtual void CompressedTexSubImage2D(GLenum target, 66 GLint level, 67 GLint xoffset, 68 GLint yoffset, 69 GLsizei width, 70 GLsizei height, 71 GLenum format, 72 GLsizei imageSize, 73 const void* data) = 0; 74 virtual void CopyTexImage2D(GLenum target, 75 GLint level, 76 GLenum internalformat, 77 GLint x, 78 GLint y, 79 GLsizei width, 80 GLsizei height, 81 GLint border) = 0; 82 virtual void CopyTexSubImage2D(GLenum target, 83 GLint level, 84 GLint xoffset, 85 GLint yoffset, 86 GLint x, 87 GLint y, 88 GLsizei width, 89 GLsizei height) = 0; 90 virtual GLuint CreateProgram() = 0; 91 virtual GLuint CreateShader(GLenum type) = 0; 92 virtual void CullFace(GLenum mode) = 0; 93 virtual void DeleteBuffers(GLsizei n, const GLuint* buffers) = 0; 94 virtual void DeleteFramebuffers(GLsizei n, const GLuint* framebuffers) = 0; 95 virtual void DeleteProgram(GLuint program) = 0; 96 virtual void DeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers) = 0; 97 virtual void DeleteShader(GLuint shader) = 0; 98 virtual void DeleteTextures(GLsizei n, const GLuint* textures) = 0; 99 virtual void DepthFunc(GLenum func) = 0; 100 virtual void DepthMask(GLboolean flag) = 0; 101 virtual void DepthRangef(GLclampf zNear, GLclampf zFar) = 0; 102 virtual void DetachShader(GLuint program, GLuint shader) = 0; 103 virtual void Disable(GLenum cap) = 0; 104 virtual void DisableVertexAttribArray(GLuint index) = 0; 105 virtual void DrawArrays(GLenum mode, GLint first, GLsizei count) = 0; 106 virtual void DrawElements(GLenum mode, 107 GLsizei count, 108 GLenum type, 109 const void* indices) = 0; 110 virtual void Enable(GLenum cap) = 0; 111 virtual void EnableVertexAttribArray(GLuint index) = 0; 112 virtual void Finish() = 0; 113 virtual void Flush() = 0; 114 virtual void FramebufferRenderbuffer(GLenum target, 115 GLenum attachment, 116 GLenum renderbuffertarget, 117 GLuint renderbuffer) = 0; 118 virtual void FramebufferTexture2D(GLenum target, 119 GLenum attachment, 120 GLenum textarget, 121 GLuint texture, 122 GLint level) = 0; 123 virtual void FrontFace(GLenum mode) = 0; 124 virtual void GenBuffers(GLsizei n, GLuint* buffers) = 0; 125 virtual void GenerateMipmap(GLenum target) = 0; 126 virtual void GenFramebuffers(GLsizei n, GLuint* framebuffers) = 0; 127 virtual void GenRenderbuffers(GLsizei n, GLuint* renderbuffers) = 0; 128 virtual void GenTextures(GLsizei n, GLuint* textures) = 0; 129 virtual void GetActiveAttrib(GLuint program, 130 GLuint index, 131 GLsizei bufsize, 132 GLsizei* length, 133 GLint* size, 134 GLenum* type, 135 char* name) = 0; 136 virtual void GetActiveUniform(GLuint program, 137 GLuint index, 138 GLsizei bufsize, 139 GLsizei* length, 140 GLint* size, 141 GLenum* type, 142 char* name) = 0; 143 virtual void GetAttachedShaders(GLuint program, 144 GLsizei maxcount, 145 GLsizei* count, 146 GLuint* shaders) = 0; 147 virtual GLint GetAttribLocation(GLuint program, const char* name) = 0; 148 virtual void GetBooleanv(GLenum pname, GLboolean* params) = 0; 149 virtual void GetBufferParameteriv(GLenum target, 150 GLenum pname, 151 GLint* params) = 0; 152 virtual GLenum GetError() = 0; 153 virtual void GetFloatv(GLenum pname, GLfloat* params) = 0; 154 virtual void GetFramebufferAttachmentParameteriv(GLenum target, 155 GLenum attachment, 156 GLenum pname, 157 GLint* params) = 0; 158 virtual void GetIntegerv(GLenum pname, GLint* params) = 0; 159 virtual void GetProgramiv(GLuint program, GLenum pname, GLint* params) = 0; 160 virtual void GetProgramInfoLog(GLuint program, 161 GLsizei bufsize, 162 GLsizei* length, 163 char* infolog) = 0; 164 virtual void GetRenderbufferParameteriv(GLenum target, 165 GLenum pname, 166 GLint* params) = 0; 167 virtual void GetShaderiv(GLuint shader, GLenum pname, GLint* params) = 0; 168 virtual void GetShaderInfoLog(GLuint shader, 169 GLsizei bufsize, 170 GLsizei* length, 171 char* infolog) = 0; 172 virtual void GetShaderPrecisionFormat(GLenum shadertype, 173 GLenum precisiontype, 174 GLint* range, 175 GLint* precision) = 0; 176 virtual void GetShaderSource(GLuint shader, 177 GLsizei bufsize, 178 GLsizei* length, 179 char* source) = 0; 180 virtual const GLubyte* GetString(GLenum name) = 0; 181 virtual void GetTexParameterfv(GLenum target, 182 GLenum pname, 183 GLfloat* params) = 0; 184 virtual void GetTexParameteriv(GLenum target, GLenum pname, GLint* params) = 0; 185 virtual void GetUniformfv(GLuint program, GLint location, GLfloat* params) = 0; 186 virtual void GetUniformiv(GLuint program, GLint location, GLint* params) = 0; 187 virtual GLint GetUniformLocation(GLuint program, const char* name) = 0; 188 virtual void GetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params) = 0; 189 virtual void GetVertexAttribiv(GLuint index, GLenum pname, GLint* params) = 0; 190 virtual void GetVertexAttribPointerv(GLuint index, 191 GLenum pname, 192 void** pointer) = 0; 193 virtual void Hint(GLenum target, GLenum mode) = 0; 194 virtual GLboolean IsBuffer(GLuint buffer) = 0; 195 virtual GLboolean IsEnabled(GLenum cap) = 0; 196 virtual GLboolean IsFramebuffer(GLuint framebuffer) = 0; 197 virtual GLboolean IsProgram(GLuint program) = 0; 198 virtual GLboolean IsRenderbuffer(GLuint renderbuffer) = 0; 199 virtual GLboolean IsShader(GLuint shader) = 0; 200 virtual GLboolean IsTexture(GLuint texture) = 0; 201 virtual void LineWidth(GLfloat width) = 0; 202 virtual void LinkProgram(GLuint program) = 0; 203 virtual void PixelStorei(GLenum pname, GLint param) = 0; 204 virtual void PolygonOffset(GLfloat factor, GLfloat units) = 0; 205 virtual void ReadPixels(GLint x, 206 GLint y, 207 GLsizei width, 208 GLsizei height, 209 GLenum format, 210 GLenum type, 211 void* pixels) = 0; 212 virtual void ReleaseShaderCompiler() = 0; 213 virtual void RenderbufferStorage(GLenum target, 214 GLenum internalformat, 215 GLsizei width, 216 GLsizei height) = 0; 217 virtual void SampleCoverage(GLclampf value, GLboolean invert) = 0; 218 virtual void Scissor(GLint x, GLint y, GLsizei width, GLsizei height) = 0; 219 virtual void ShaderBinary(GLsizei n, 220 const GLuint* shaders, 221 GLenum binaryformat, 222 const void* binary, 223 GLsizei length) = 0; 224 virtual void ShaderSource(GLuint shader, 225 GLsizei count, 226 const GLchar* const* str, 227 const GLint* length) = 0; 228 virtual void ShallowFinishCHROMIUM() = 0; 229 virtual void ShallowFlushCHROMIUM() = 0; 230 virtual void StencilFunc(GLenum func, GLint ref, GLuint mask) = 0; 231 virtual void StencilFuncSeparate(GLenum face, 232 GLenum func, 233 GLint ref, 234 GLuint mask) = 0; 235 virtual void StencilMask(GLuint mask) = 0; 236 virtual void StencilMaskSeparate(GLenum face, GLuint mask) = 0; 237 virtual void StencilOp(GLenum fail, GLenum zfail, GLenum zpass) = 0; 238 virtual void StencilOpSeparate(GLenum face, 239 GLenum fail, 240 GLenum zfail, 241 GLenum zpass) = 0; 242 virtual void TexImage2D(GLenum target, 243 GLint level, 244 GLint internalformat, 245 GLsizei width, 246 GLsizei height, 247 GLint border, 248 GLenum format, 249 GLenum type, 250 const void* pixels) = 0; 251 virtual void TexParameterf(GLenum target, GLenum pname, GLfloat param) = 0; 252 virtual void TexParameterfv(GLenum target, 253 GLenum pname, 254 const GLfloat* params) = 0; 255 virtual void TexParameteri(GLenum target, GLenum pname, GLint param) = 0; 256 virtual void TexParameteriv(GLenum target, 257 GLenum pname, 258 const GLint* params) = 0; 259 virtual void TexSubImage2D(GLenum target, 260 GLint level, 261 GLint xoffset, 262 GLint yoffset, 263 GLsizei width, 264 GLsizei height, 265 GLenum format, 266 GLenum type, 267 const void* pixels) = 0; 268 virtual void Uniform1f(GLint location, GLfloat x) = 0; 269 virtual void Uniform1fv(GLint location, GLsizei count, const GLfloat* v) = 0; 270 virtual void Uniform1i(GLint location, GLint x) = 0; 271 virtual void Uniform1iv(GLint location, GLsizei count, const GLint* v) = 0; 272 virtual void Uniform2f(GLint location, GLfloat x, GLfloat y) = 0; 273 virtual void Uniform2fv(GLint location, GLsizei count, const GLfloat* v) = 0; 274 virtual void Uniform2i(GLint location, GLint x, GLint y) = 0; 275 virtual void Uniform2iv(GLint location, GLsizei count, const GLint* v) = 0; 276 virtual void Uniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z) = 0; 277 virtual void Uniform3fv(GLint location, GLsizei count, const GLfloat* v) = 0; 278 virtual void Uniform3i(GLint location, GLint x, GLint y, GLint z) = 0; 279 virtual void Uniform3iv(GLint location, GLsizei count, const GLint* v) = 0; 280 virtual void Uniform4f(GLint location, 281 GLfloat x, 282 GLfloat y, 283 GLfloat z, 284 GLfloat w) = 0; 285 virtual void Uniform4fv(GLint location, GLsizei count, const GLfloat* v) = 0; 286 virtual void Uniform4i(GLint location, GLint x, GLint y, GLint z, GLint w) = 0; 287 virtual void Uniform4iv(GLint location, GLsizei count, const GLint* v) = 0; 288 virtual void UniformMatrix2fv(GLint location, 289 GLsizei count, 290 GLboolean transpose, 291 const GLfloat* value) = 0; 292 virtual void UniformMatrix3fv(GLint location, 293 GLsizei count, 294 GLboolean transpose, 295 const GLfloat* value) = 0; 296 virtual void UniformMatrix4fv(GLint location, 297 GLsizei count, 298 GLboolean transpose, 299 const GLfloat* value) = 0; 300 virtual void UseProgram(GLuint program) = 0; 301 virtual void ValidateProgram(GLuint program) = 0; 302 virtual void VertexAttrib1f(GLuint indx, GLfloat x) = 0; 303 virtual void VertexAttrib1fv(GLuint indx, const GLfloat* values) = 0; 304 virtual void VertexAttrib2f(GLuint indx, GLfloat x, GLfloat y) = 0; 305 virtual void VertexAttrib2fv(GLuint indx, const GLfloat* values) = 0; 306 virtual void VertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z) = 0; 307 virtual void VertexAttrib3fv(GLuint indx, const GLfloat* values) = 0; 308 virtual void VertexAttrib4f(GLuint indx, 309 GLfloat x, 310 GLfloat y, 311 GLfloat z, 312 GLfloat w) = 0; 313 virtual void VertexAttrib4fv(GLuint indx, const GLfloat* values) = 0; 314 virtual void VertexAttribPointer(GLuint indx, 315 GLint size, 316 GLenum type, 317 GLboolean normalized, 318 GLsizei stride, 319 const void* ptr) = 0; 320 virtual void Viewport(GLint x, GLint y, GLsizei width, GLsizei height) = 0; 321 virtual void BlitFramebufferCHROMIUM(GLint srcX0, 322 GLint srcY0, 323 GLint srcX1, 324 GLint srcY1, 325 GLint dstX0, 326 GLint dstY0, 327 GLint dstX1, 328 GLint dstY1, 329 GLbitfield mask, 330 GLenum filter) = 0; 331 virtual void RenderbufferStorageMultisampleCHROMIUM(GLenum target, 332 GLsizei samples, 333 GLenum internalformat, 334 GLsizei width, 335 GLsizei height) = 0; 336 virtual void RenderbufferStorageMultisampleEXT(GLenum target, 337 GLsizei samples, 338 GLenum internalformat, 339 GLsizei width, 340 GLsizei height) = 0; 341 virtual void FramebufferTexture2DMultisampleEXT(GLenum target, 342 GLenum attachment, 343 GLenum textarget, 344 GLuint texture, 345 GLint level, 346 GLsizei samples) = 0; 347 virtual void TexStorage2DEXT(GLenum target, 348 GLsizei levels, 349 GLenum internalFormat, 350 GLsizei width, 351 GLsizei height) = 0; 352 virtual void GenQueriesEXT(GLsizei n, GLuint* queries) = 0; 353 virtual void DeleteQueriesEXT(GLsizei n, const GLuint* queries) = 0; 354 virtual GLboolean IsQueryEXT(GLuint id) = 0; 355 virtual void BeginQueryEXT(GLenum target, GLuint id) = 0; 356 virtual void EndQueryEXT(GLenum target) = 0; 357 virtual void GetQueryivEXT(GLenum target, GLenum pname, GLint* params) = 0; 358 virtual void GetQueryObjectuivEXT(GLuint id, GLenum pname, GLuint* params) = 0; 359 virtual void InsertEventMarkerEXT(GLsizei length, const GLchar* marker) = 0; 360 virtual void PushGroupMarkerEXT(GLsizei length, const GLchar* marker) = 0; 361 virtual void PopGroupMarkerEXT() = 0; 362 virtual void GenVertexArraysOES(GLsizei n, GLuint* arrays) = 0; 363 virtual void DeleteVertexArraysOES(GLsizei n, const GLuint* arrays) = 0; 364 virtual GLboolean IsVertexArrayOES(GLuint array) = 0; 365 virtual void BindVertexArrayOES(GLuint array) = 0; 366 virtual void SwapBuffers() = 0; 367 virtual GLuint GetMaxValueInBufferCHROMIUM(GLuint buffer_id, 368 GLsizei count, 369 GLenum type, 370 GLuint offset) = 0; 371 virtual void GenSharedIdsCHROMIUM(GLuint namespace_id, 372 GLuint id_offset, 373 GLsizei n, 374 GLuint* ids) = 0; 375 virtual void DeleteSharedIdsCHROMIUM(GLuint namespace_id, 376 GLsizei n, 377 const GLuint* ids) = 0; 378 virtual void RegisterSharedIdsCHROMIUM(GLuint namespace_id, 379 GLsizei n, 380 const GLuint* ids) = 0; 381 virtual GLboolean EnableFeatureCHROMIUM(const char* feature) = 0; 382 virtual void* MapBufferCHROMIUM(GLuint target, GLenum access) = 0; 383 virtual GLboolean UnmapBufferCHROMIUM(GLuint target) = 0; 384 virtual void* MapImageCHROMIUM(GLuint image_id) = 0; 385 virtual void UnmapImageCHROMIUM(GLuint image_id) = 0; 386 virtual void* MapBufferSubDataCHROMIUM(GLuint target, 387 GLintptr offset, 388 GLsizeiptr size, 389 GLenum access) = 0; 390 virtual void UnmapBufferSubDataCHROMIUM(const void* mem) = 0; 391 virtual void* MapTexSubImage2DCHROMIUM(GLenum target, 392 GLint level, 393 GLint xoffset, 394 GLint yoffset, 395 GLsizei width, 396 GLsizei height, 397 GLenum format, 398 GLenum type, 399 GLenum access) = 0; 400 virtual void UnmapTexSubImage2DCHROMIUM(const void* mem) = 0; 401 virtual void ResizeCHROMIUM(GLuint width, 402 GLuint height, 403 GLfloat scale_factor) = 0; 404 virtual const GLchar* GetRequestableExtensionsCHROMIUM() = 0; 405 virtual void RequestExtensionCHROMIUM(const char* extension) = 0; 406 virtual void RateLimitOffscreenContextCHROMIUM() = 0; 407 virtual void GetMultipleIntegervCHROMIUM(const GLenum* pnames, 408 GLuint count, 409 GLint* results, 410 GLsizeiptr size) = 0; 411 virtual void GetProgramInfoCHROMIUM(GLuint program, 412 GLsizei bufsize, 413 GLsizei* size, 414 void* info) = 0; 415 virtual GLuint CreateStreamTextureCHROMIUM(GLuint texture) = 0; 416 virtual GLuint CreateImageCHROMIUM(GLsizei width, 417 GLsizei height, 418 GLenum internalformat, 419 GLenum usage) = 0; 420 virtual void DestroyImageCHROMIUM(GLuint image_id) = 0; 421 virtual void GetImageParameterivCHROMIUM(GLuint image_id, 422 GLenum pname, 423 GLint* params) = 0; 424 virtual void GetTranslatedShaderSourceANGLE(GLuint shader, 425 GLsizei bufsize, 426 GLsizei* length, 427 char* source) = 0; 428 virtual void PostSubBufferCHROMIUM(GLint x, 429 GLint y, 430 GLint width, 431 GLint height) = 0; 432 virtual void TexImageIOSurface2DCHROMIUM(GLenum target, 433 GLsizei width, 434 GLsizei height, 435 GLuint ioSurfaceId, 436 GLuint plane) = 0; 437 virtual void CopyTextureCHROMIUM(GLenum target, 438 GLenum source_id, 439 GLenum dest_id, 440 GLint level, 441 GLint internalformat, 442 GLenum dest_type) = 0; 443 virtual void DrawArraysInstancedANGLE(GLenum mode, 444 GLint first, 445 GLsizei count, 446 GLsizei primcount) = 0; 447 virtual void DrawElementsInstancedANGLE(GLenum mode, 448 GLsizei count, 449 GLenum type, 450 const void* indices, 451 GLsizei primcount) = 0; 452 virtual void VertexAttribDivisorANGLE(GLuint index, GLuint divisor) = 0; 453 virtual void GenMailboxCHROMIUM(GLbyte* mailbox) = 0; 454 virtual void ProduceTextureCHROMIUM(GLenum target, const GLbyte* mailbox) = 0; 455 virtual void ProduceTextureDirectCHROMIUM(GLuint texture, 456 GLenum target, 457 const GLbyte* mailbox) = 0; 458 virtual void ConsumeTextureCHROMIUM(GLenum target, const GLbyte* mailbox) = 0; 459 virtual GLuint CreateAndConsumeTextureCHROMIUM(GLenum target, 460 const GLbyte* mailbox) = 0; 461 virtual void BindUniformLocationCHROMIUM(GLuint program, 462 GLint location, 463 const char* name) = 0; 464 virtual void BindTexImage2DCHROMIUM(GLenum target, GLint imageId) = 0; 465 virtual void ReleaseTexImage2DCHROMIUM(GLenum target, GLint imageId) = 0; 466 virtual void TraceBeginCHROMIUM(const char* name) = 0; 467 virtual void TraceEndCHROMIUM() = 0; 468 virtual void AsyncTexSubImage2DCHROMIUM(GLenum target, 469 GLint level, 470 GLint xoffset, 471 GLint yoffset, 472 GLsizei width, 473 GLsizei height, 474 GLenum format, 475 GLenum type, 476 const void* data) = 0; 477 virtual void AsyncTexImage2DCHROMIUM(GLenum target, 478 GLint level, 479 GLenum internalformat, 480 GLsizei width, 481 GLsizei height, 482 GLint border, 483 GLenum format, 484 GLenum type, 485 const void* pixels) = 0; 486 virtual void WaitAsyncTexImage2DCHROMIUM(GLenum target) = 0; 487 virtual void WaitAllAsyncTexImage2DCHROMIUM() = 0; 488 virtual void DiscardFramebufferEXT(GLenum target, 489 GLsizei count, 490 const GLenum* attachments) = 0; 491 virtual void LoseContextCHROMIUM(GLenum current, GLenum other) = 0; 492 virtual GLuint InsertSyncPointCHROMIUM() = 0; 493 virtual void WaitSyncPointCHROMIUM(GLuint sync_point) = 0; 494 virtual void DrawBuffersEXT(GLsizei count, const GLenum* bufs) = 0; 495 virtual void DiscardBackbufferCHROMIUM() = 0; 496 virtual void ScheduleOverlayPlaneCHROMIUM(GLint plane_z_order, 497 GLenum plane_transform, 498 GLuint overlay_texture_id, 499 GLint bounds_x, 500 GLint bounds_y, 501 GLint bounds_width, 502 GLint bounds_height, 503 GLfloat uv_x, 504 GLfloat uv_y, 505 GLfloat uv_width, 506 GLfloat uv_height) = 0; 507 virtual void MatrixLoadfCHROMIUM(GLenum matrixMode, const GLfloat* m) = 0; 508 virtual void MatrixLoadIdentityCHROMIUM(GLenum matrixMode) = 0; 509 #endif // GPU_COMMAND_BUFFER_CLIENT_GLES2_INTERFACE_AUTOGEN_H_ 510