| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug #6408362
FontRenderer allocates large font textures when more room is needed
to store all the glyphs used by an application. Thse large textures
are the first to be freed when memory needs to be reclaimed by the
system. When freeing a texture, the renderer would however not set
the texture name to an invalid name, leading future allocations to
be performed on the same texture name. That name could have by then
be recycled by the driver and returned by a call to glGenTexture
and used to create an entirely different texture. This would cause
the font renderer to point to the wrong texture, thus leading to
the "corruptions."
Change-Id: I8a1e80e5b79e8f21d1baf5320c090df4f2066cd4
|
| |
|
|
|
|
| |
Bug #6408362
Change-Id: I58543938e7b64d83504e11e97b0dd21ef8ebf3b6
|
| |
|
|
|
|
| |
Bug #6408362
Change-Id: Ie11644c5a9e2d87d3b851b7e619e5f04b60a7e02
|
| |
|
|
|
|
|
|
|
| |
WebView needs more fine-grained control over the behavior of the
framework upon execution of the display lists. The new status_t
allows WebView to requests its functor to be re-executed directly
without causing a redraw of the entire hierarchy.
Change-Id: I97a8141dc5c6eeb6805b6024cc1e76fce07d24cc
|
| |
|
|
|
|
| |
Bug #6219894
Change-Id: If77f29da03e557a50e53bae505e1c638a1dbe2cc
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Bug #6196903
Whenever a memory flush happens, the GL renderer discards some or all of its
font caches. Each font cache holds an array of vertex indices that was
initially designed to have the same life cycle as the process. This changed
when memory flushes were introduced but this array was never taken care of
in the destructor.
Change-Id: Ief124f609ea55b671c0a9b43637d9e013629ebaa
|
| |
|
|
| |
Change-Id: I1d668a912996e1267bcf2127058888e489a2d9b3
|
| |
|
|
| |
Change-Id: I23223b89770a0cd2b4762365bead9bfddb094290
|
| |
|
|
| |
Change-Id: I92463057ff4ae712bb25789db1667ff1ecfd389f
|
| |
|
|
|
|
| |
This also introduces a small optimization when rendering text.
Change-Id: Iff620ac97bf878eaac406bccc6daa07052c93890
|
| |
|
|
|
|
|
| |
See https://android-git.corp.google.com/g/#/c/157220
Bug: 5449033
Change-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, font renderers eliminate some texture caches when
memory is trimmed. This change makes it go further by eliminating the
large-glyph caches for all font renderers. These caches are
only allocated as needed, but continue to consume large amounts of
memory (CPU and GPU) after that allocation. De-allocating this memory
on a trim operation should prevent background apps from holding onto
this memory in the possible case that they have allocated it by drawing
large glyphs.
Change-Id: Id7a3ab49b244e036b442d87252fb40aeca8fdb26
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
There were 2 issues remaining after a recent change to support
glyph caching from multiple textures:
- memory in the GPU for all textures was being allocated automatically.
This is now lazy, being allocated only when those textures are first
needed.
- filtering (applied when a rendered object is transformed) was ignoring
the new multiple-texture structure. Filtering should be applied correctly
whenever we change textures.
Change-Id: I5c8eb8d46c73cd01782a353fc79b11cacc2146ab
|
| |
|
|
| |
Change-Id: I94046bdfe20740c26c8183822e3002d692fde7c4
|
| |\ |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Some GPU architectures could not handle the previous implementation
of our glyph cache. Frequent uploads would cause memory problems in the GPU
and eventually a crash due to these memory issues. The solution is to move to
a system of several, smaller caches instead of one monolythic cache for all
glyphs.
Change-Id: I0fc7a323360940d16d5a33eeb33abfab194c5920
|
| |/
|
|
|
|
|
|
| |
This optimization along with the previous one lets us render an
application like Gmail using only 30% of the number of GL commands
previously required
Change-Id: Ifee63edaf495e04490b5abd5433bb9a07bc327a8
|
| |
|
|
| |
Change-Id: Iae59bc8dfd6427d0967472462cc1994987092827
|
| |
|
|
| |
Change-Id: I6313ac039291c9cd93aadafe3566ad9d60cab42d
|
| |
|
|
|
|
|
|
|
| |
Bug #5659476
The FontRenderer was not cleaning up its temporary state, leading
to crashes when invoking renderDropShadow.
Change-Id: I43b24820dd5625af8c080bbe11b64de2f74164b2
|
| |
|
|
|
|
| |
Bug #5423215
Change-Id: I39379e1f8fb4d59de4ede6e4fe7cf7a2c7cc625a
|
| |
|
|
|
|
|
|
| |
Bug #5230196
Yes, 75px. Any other font size would work. Don't ask.
Change-Id: I96c7db9926a97f65128d60c8238c3640ee2444ba
|
| |
|
|
|
|
| |
Bug #5112207
Change-Id: Ic34037ace21a5058ba23dd15e51aae58c998454d
|
| |
|
|
|
|
| |
Bug #4350336
Change-Id: I1cf31693f7ca9653fa3a41b5b91c27ef288d680f
|
| |
|
|
| |
Change-Id: I7b022100fb0762613f9cf7753dbb0217e1e75f8d
|
| |
|
|
|
|
|
|
|
|
| |
Glyphs drawn with paints that had different textScaleX values were not
being recognized as different, so the glyph cache was being used regardless
of different scaleX values. This change adds the scaleX attribute to the native
Font object to allow the cache to distinguish between this difference and cache
accordingly.
Change-Id: I5d8fc26d47460b27dc8e373a473d46b2f1b8dc30
|
| |
|
|
| |
Change-Id: I6377bb641df7d8372d873c00790189f9a190afd6
|
| |
|
|
| |
Change-Id: Idbdd6b84f31301e58ed53e0d50fd61fece192dfa
|
| |
|
|
|
|
| |
Bug #3369888
Change-Id: Ic17bbd1c04bbf760cb17d0eb9e6767fd6479948c
|
| |
|
|
|
|
| |
Bug #3360888
Change-Id: I42e81a1f10bf7b9ae1c63ca8add1878fd59a1e8a
|
| |
|
|
| |
Change-Id: Ie4edc9ba46610edde831b55e769944e9a19bdcb5
|
| |
|
|
|
|
|
|
|
| |
This optimization is currently disabled until Launcher is
modified to take advantage of it. The optimization can be
enabled by turning on RENDER_LAYERS_AS_REGIONS in the
OpenGLRenderer.h file.
Change-Id: I2fdf59d0f4dc690a3d7f712173ab8db3848b27b1
|
| |
|
|
| |
Change-Id: If3e62e18b8e0dbde8a22f8ede2889b86500a4dc2
|
| |
|
|
| |
Change-Id: If59c1e7803b84340fbc8b31ce6171ef0e5dc6189
|
| |
|
|
| |
Change-Id: Ic903f4b5d30e9c92528c6291941896efe4729ee3
|
| |
|
|
|
|
|
| |
Now that text is renderer using bilinear filtering, each character is surrounded by
a 1 pixel border. This border needs to be initialized to a transparent value.
Change-Id: I26d3195db4bd576ac1f2da4c8f8e4dd18768bf12
|
| |
|
|
| |
Change-Id: I2c81ad657ee2a11a2139e0b11ae3749db54c0749
|
| |
|
|
| |
Change-Id: I9d4c84034dc200b99c8266165942a7cdbcb5c0c5
|
| |
|
|
| |
Change-Id: I239572ee49bc60f30d957f548104e75844859a93
|
| |
|
|
| |
Change-Id: I1f3ae40025697e8f8ca0616ee6550fe215cadcc8
|
| |
|
|
| |
Change-Id: I1b05f40e356221b2a5eb9400e67d77ecd98ed6c4
|
| |
|
|
| |
Change-Id: Ic6a72409d4785968d1fbdff229f17ee5c00b240b
|
| |
|
|
| |
Change-Id: I326c66b10784006f6df2f12d38e120cef94cd0d7
|
| |
|
|
|
|
|
|
|
|
|
|
| |
When an app tries to render a bitmap or path larger than the GPU's maximum
texture size, the drawing command is ignored and a warning is logged. This
change also makes texture drawing more robust by catching potential errors
during texture creation.
This change also fixes a crash in the FontRenderer. The destructor would
sometimes try to free an uninitialized array.
Change-Id: I95ae0939c52192d97b340aa02417bf6d0c962c57
|
| |
|
|
| |
Change-Id: Id243abfbbb58e54f6a05f592a302984b5321e608
|
| |
|
|
| |
Change-Id: I9b1b9568d6cebc0761d96ab678b018571f705ae1
|
| |
|
|
|
|
|
| |
This changes binds all textures to GL_TEXTURE0, this will have
to be changed when combining shader capabilities.
Change-Id: I02df4f5ba41e9b01ffa52fd7c26b41477c7ed18f
|
| |
|
|
|
|
|
|
|
|
|
| |
The generator supports features that are not yet implement in the
renderer: color matrix, lighting, porterduff color blending and
composite shaders.
This change also adds support for repeated/mirrored non-power of 2
bitmap shaders.
Change-Id: I903a11a070c0eb9cc8850a60ef305751e5b47234
|
| |
|
|
|
|
| |
precache some commonly used characters to reduce studder.
Change-Id: I1f66f57482c4a025672dfd1d8ecaf2b9736cd9a0
|
| |
|
|
| |
Change-Id: If9a37e10197255122acdb5b10a0c356edd942d67
|