I've been reading about Android graphic internals. Especially this "android graphics internals" post and the official Android graphics architecture page have given me an overview how it is working. I understand that there are Surfaces where the Apps are rendering into whether with Skia, OpenGL ES or something else.
Now I'm wondering where in this chain I'd have to put some extra code to rearrange the position of such objects rendered into such a Surface.
To make my question more clear hear a quick example:
If an android phone is attached to a monitor (via adapter) or the screen is shared (via chromecast or whatever), the display will contain unused space on the left and the right side because of the portrait mode. Where can I modify the rendering process so the tablet layout in landscape mode of the app is used to present the content?
Am I on the right way to tweak something somewhere in Skia or OpenGL ES or even somewhere down in SurfaceFlinger? It just seems to me like it would be the wrong way to modify some finished-for-display buffers.
I hoped that maybe I could keep it on a level where I can still see object properties like x, y, height and width. The final goal is to modify the appearance of i. e. the Navigation Drawer, so he will be always be visible and the rest of the content is scaled a bit smaller to make place. Achieving all this with altering buffers seams crazy to me.
I hope someone of you guys can point me in the right direction! I'd really appreciate it.