Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
Since the Android backend uses glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA)
we need to make the transparent cursor pixels all 0 otherwise we might get
artifacts from blending.
|
|
This should fix a issue similarly to bug #6108:
"WII: Zak FM-TOWNS mouse cursor encased in blue box".
|
|
|
|
We still prefer 16bpp for performance reasons.
|
|
Overlays with alpha channel in ScummVM use pre-multiplied alpha.
Thus, is it necessary to set the source blend function to ONE, not
SOURCE_ALPHA.
While there is no firm decision on the texture format to be used to
cursors, make sure to set the key color to R=G=B=A=0.0, so that it
can be used with either pre-multiplied or non-pre-multiplied blending.
|
|
|
|
|
|
pitch values.
This is a first step to get rid of OverlayColor, which is a requirement for
proper 4Bpp overlay support.
|
|
This is mainly for consistency with OSystem::copyRectToScreen.
|
|
*" as buffer.
This removes the need to convert the parameter to copyRectToScreen to
"const byte *", which is commonly used in games, which use Graphics::Surface
to store their graphics data.
|
|
logic.
All uses of the old target scale API actually wanted to disallow scaling of
the mouse cursor. This commit adapts our API to this and thus simplifies
backend implementations.
Some backends, most notable the Wii and Android, did some implementation of
the cursor target scale, which I didn't adapt yet. I added a TODO for the
porters there.
|
|
|
|
|
|
|
|
|
|
|
|
Note that this change is not tested at all (not even compile wise!).
|
|
|
|
Reports suggest that its working and not required
|
|
HTC's drivers don't preserve the color buffer between frames (as allowed
by the spec, apparently), so we have to force-clear it every frame when
we're not rendering a texture over the whole screen.
|
|
When coming back from standby, there might be an indermediate surface
change
|
|
|
|
Don't wipe the RGB bits, fixes wrong colors on BASS cursors
|
|
|
|
|
|
|
|
|
|
Doesn't work on some drivers, need to do it differently
|
|
Rewritten input system with many new feature.
Fixed related bugs and shortcomings on the way.
|
|
|
|
|
|
Not required. Why did i add that again?
|
|
|
|
Hopefully that'll help me to not forget about the double buffering.
This fixes some gfx leftovers when not running games in fullscreen
mode.
|
|
Fixes regression introduced with 4267011e
|
|
|
|
|
|
|
|
kFeatureFullscreenMode and kFeatureAspectRatioCorrection are supported
now. The former prevents scaling to the full display - it scales one
axis and keeps the game AR.
|
|
|
|
Same issue as in the last commit: glTexSubImage2D is slow, so cache
all copyRect*() calls in a buffer, and update the dirty rect once
when drawing. Reduces CPU usage on 16bit games significantly.
Also, lockScreen() returns now pixel data for non-CLUT8 games instead
of asserting.
|
|
Some GLES drivers suck so much that uploading data to the GPU takes
ages. CLUT8 games now use a faked paletted texture, which internally
uses a RGB565 hardware texture (Android's native pixel format).
This seems to be the only way to efficiently implement constant
changing textures with GLES1 - at the cost of extra buffers.
Then again, we can now use glTexSubImage2D to only update the dirty
rects, which wasn't possible before because glCompressedTexSubImage2D
is only usable on GLES2. This commit does exactly that.
Overall, the CPU usage is massively reduced for CLUT8 games.
|
|
This reduces the CPU usage on 640x480 games by ~5% on my droid when
reuploading the textures to the GPU
|
|
|
|
|
|
|
|
Leftover from the recently introduced 16bit support
|