Age | Commit message (Collapse) | Author |
|
bookmarks on amlogic
|
|
on the amvideocap driver (needs amlogic kernel with amvideocap support)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
can't be extracted
|
|
|
|
|
|
Cache font vertices, GPU-side when possible
|
|
|
|
This involves setting up a static VBO containing the indexes necessary to
convert from quads to triangles on the fly in the GPU.
|
|
The font cache now stores the "name" (handle) of the VBO, rather than a vector
of vertices.
|
|
|
|
|
|
them to the model view matrix from the top of the matrix stack and pushes it
over to OpenGL. The vertices themselves are still all held client-side.
|
|
Still all pure software at this stage. Main change is in the data types at
the interface between CGUIFontTTFBase and CGUIFontTTFGL. The old way
(array of vertices in m_vertex) are retained in addition, for the sake`of
cases that need to use software clipping on GLES, as well as for DX and GL
support where the new scheme is not (yet?) used.
|
|
No longer shuffles the string round to minimise the number of characters
before the clipping rectangle; this doesn't save much on rendering time but
does harm the effectiveness of the cache. Now uses a pixel offset into the
string rather than a character + pixel offset, and plots the entire string
every time (execpt when the wrap point is visible, in which case the entire
string is plotted twice).
It also makes motion smoother, because (possibly unintentionally) the
previous code preferred to align the scroll offset with character boundaries.
This would lead to uneven changes of position, especially when the width of
the character currently being scrolled off the edge was only slightly more
than an integral multiple of the scroll increment.
|
|
and m_originY *after* they have been through the graphics context's
transformation matrix, plus the scale/rotation elements of the matrix, rather
than the origin in the original frame of reference plus the complete
transformation matrix. All vertices of individual glyph bounding boxes are a
constant offset from this position, and when the fractional part of the
translation is a match, the rounding of each vertex will be in the same
direction; this permits us to calculate the desired vertices from the cached
ones simply by adding the integer parts of the translations with no additional
rounding steps.
Note that this requires that software clipping is *not* performed.
|
|
For glScissor() to replace CGraphicContext::ClipRect, a necessary condition
is that no shear or rotation is introduced between the coordinate systems
they use; this depends upon the settings of the GUI matrix m_finalTransform
as well as the OpenGL model-view and projection matrices. These all remain
unchanged between paired calls of CGUIShader::OnEnabled and
CGUIShader::OnDisabled, so we scan the matrices in CGUIShader::OnEnabled to
see whether hardware clipping is possible.
Then, in CGUIFontTTFBase::RenderCharacter, we don't apply software clipping
in such cases. However, because vertices arising from multiple
CGUIFontTTFBase::DrawTextInternal calls (each of which often uses a different
clip rectangle) get lumped into the same vector, which only at the end is
passed to OpenGL for rendering, we need to wait a few commits before we can
actually apply hardware clipping. In the meantime, expect to see rendering
errors.
|
|
This is implemented as a template because ultimately we will key on different
parameters and store values of different types, depending upon whether we
have a GLES or non-GLES backend, and for GLES, whether or not the currently
applicable transformation matrices permit the use of hardware clipping.
|
|
rather than only CGUIFontTTFBase::m_vertex
|
|
Also retired CGUIFontTTFBase::m_vertex_count and
CGUIFontTTFBase::m_vertex_size because these can be derived from vector
member functions.
|
|
[cosmetics] StereoscopicsManager: don't log localized strings.
|
|
actually changed
|
|
cppcheck performance fixes in linux/
|
|
Fix for coverity #719001
|
|
[cosmetics] silence compiler warnings
|
|
|
|
|
|
|
|
|
|
|
|
[coverity] Proposed fix for CID 1260398
|
|
fix typo in 729c42b0d9675ea6b3af7192afc23d96a775fc74.
|
|
|
|
[pvr] fix missing variable assignment after PR #4671
|
|
|
|
[dvdplayer] Prioritize number of channels over codec over default flag.
|
|
Previously missed cppcheck performance fixes
|
|
|
|
|
|
darwin dlna client user agent string override not working
|
|
|
|
|
|
cppcheck performance fixes in video/
|
|
|
|
|