The OpenGL-specific parts of the hardware renderer are partially separated into the OpenGL backend. Ideally this would allow easier adaptation to other 3D rendering APIs by just implementing a new backend for it.
OpenGL backend functions:
`void Init (void)`
`void SetTexture (GLMipmap_t *TexInfo)`
`TexInfo` becomes the current texture, used in future draw calls. If NULL, then a white texture is used. The texture will be uploaded to the GPU if it has not been yet.
`void UpdateTexture (GLMipmap_t *TexInfo)`
Updated data from `TexInfo` is uploaded to the GPU. (`TexInfo` is left as the current texture?)
`void DeleteTexture (GLMipmap_t *TexInfo)`
`TexInfo` is deleted from the GPU.
`void ClearMipMapCache (void)`
All textures are deleted from the GPU.
`INT32 GetTextureUsed (void)`
Returns the number of bytes used by the textures uploaded to the GPU.