Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(458)

Side by Side Diff: native_client_sdk/src/doc/devguide/coding/3D-graphics.rst

Issue 488133003: Second batch of corrections for incorrect paths. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix more paths. Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 .. _devguide-coding-3D-graphics: 1 .. _devguide-coding-3D-graphics:
2 2
3 ########### 3 ###########
4 3D Graphics 4 3D Graphics
5 ########### 5 ###########
6 6
7 Native Client applications use the `OpenGL ES 2.0 7 Native Client applications use the `OpenGL ES 2.0
8 <http://en.wikipedia.org/wiki/OpenGL_ES>`_ API for 3D rendering. This document 8 <http://en.wikipedia.org/wiki/OpenGL_ES>`_ API for 3D rendering. This document
9 describes how to call the OpenGL ES 2.0 interface in a Native Client module and 9 describes how to call the OpenGL ES 2.0 interface in a Native Client module and
10 how to build an efficient rendering loop. It also explains how to validate GPU 10 how to build an efficient rendering loop. It also explains how to validate GPU
(...skipping 489 matching lines...) Expand 10 before | Expand all | Expand 10 after
500 500
501 * **Don't use client side buffers.** OpenGL ES 2.0 can use client side data with 501 * **Don't use client side buffers.** OpenGL ES 2.0 can use client side data with
502 ``glVertexAttribPointer`` and ``glDrawElements``, but this is really slow. Try 502 ``glVertexAttribPointer`` and ``glDrawElements``, but this is really slow. Try
503 to avoid client side buffers. Use Vertex Buffer Objects (VBOs) instead. 503 to avoid client side buffers. Use Vertex Buffer Objects (VBOs) instead.
504 504
505 * **Don't mix vertex data and index data.** By default, Pepper 3D binds buffers 505 * **Don't mix vertex data and index data.** By default, Pepper 3D binds buffers
506 to a single point. You could create a buffer and bind it to both 506 to a single point. You could create a buffer and bind it to both
507 ``GL_ARRAY_BUFFER`` and ``GL_ELEMENT_ARRAY_BUFFER``, but that would be 507 ``GL_ARRAY_BUFFER`` and ``GL_ELEMENT_ARRAY_BUFFER``, but that would be
508 expensive overhead and it is not recommended. 508 expensive overhead and it is not recommended.
509 509
510 * **Don't call ``glGet*`` or ``glCheck*`` during rendering.** This is normal 510 * **Don't call glGet* or glCheck* during rendering.** This is normal
511 advice for OpenGL programs, but is particularly important for 3D on 511 advice for OpenGL programs, but is particularly important for 3D on
512 Chrome. Calls to any OpenGL ES 2.0 function whose name begins with these 512 Chrome. Calls to any OpenGL ES 2.0 function whose name begins with these
513 strings blocks the Native Client thread. This includes ``glGetError``; avoid 513 strings blocks the Native Client thread. This includes ``glGetError``; avoid
514 calling it in release builds. 514 calling it in release builds.
515 515
516 * **Don't use fixed point (``GL_FIXED``) vertex attributes.** Fixed point 516 * **Don't use fixed point (GL_FIXED) vertex attributes.** Fixed point
517 attributes are not supported in OpenGL ES 2.0, so emulating them in OpenGL ES 517 attributes are not supported in OpenGL ES 2.0, so emulating them in OpenGL ES
518 2.0 is slow. By default, ``GL_FIXED`` support is turned off in the Pepper 3D 518 2.0 is slow. By default, ``GL_FIXED`` support is turned off in the Pepper 3D
519 API. 519 API.
520 520
521 * **Don't read data from the GPU.** Don't call ``glReadPixels``, as it is slow. 521 * **Don't read data from the GPU.** Don't call ``glReadPixels``, as it is slow.
522 522
523 * **Don't update a small portion of a large buffer.** In the current OpenGL ES 523 * **Don't update a small portion of a large buffer.** In the current OpenGL ES
524 2.0 implementation when you update a portion of a buffer (with 524 2.0 implementation when you update a portion of a buffer (with
525 ``glSubBufferData`` for example) the entire buffer must be reprocessed. To 525 ``glSubBufferData`` for example) the entire buffer must be reprocessed. To
526 avoid this problem, keep static and dynamic data in different buffers. 526 avoid this problem, keep static and dynamic data in different buffers.
527 527
528 * **Don't call ``glDisable(GL_TEXTURE_2D)``.** This is an OpenGL ES 2.0 528 * **Don't call glDisable(GL_TEXTURE_2D).** This is an OpenGL ES 2.0
529 error. Each time it is called, an error messages will appear in Chrome's 529 error. Each time it is called, an error messages will appear in Chrome's
530 ``about:gpu`` tab. 530 ``about:gpu`` tab.
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698