OpenGL, in its default form (especially when referring to the core profile without immediate mode), is a procedural API designed to interact directly with the GPU. Its model is a state machine: you set the current color, texture, matrix, shader program, and blending mode, then issue vertices. The GPU then executes a fixed sequence of operations: vertex shading, primitive assembly, rasterization, fragment shading, and per-sample operations. This pipeline is exceptionally powerful and flexible, capable of rendering complex 3D scenes, but it demands that the developer manage every minute detail—from vertex buffer objects (VBOs) and shader compilation to texture atlases and depth testing. There is no inherent concept of a "rectangle," "circle," or "paragraph of text"; these must be built from triangles and textures.
Skia, in contrast, is a portability engine. The same Skia code compiles and runs on Windows (using Direct3D or OpenGL), macOS/iOS (using Metal), Linux (Vulkan/OpenGL), Android (Vulkan/OpenGL), and even in web browsers via WebAssembly with WebGL. Skia’s backend abstraction means the developer never touches a platform-specific API. For cross-platform applications like Chrome, Flutter, or Figma’s desktop client, this is invaluable. opengl default vs skia
One of the most notorious challenges of default OpenGL is its stateful nature. Setting a texture, shader, or blend mode has global side effects. A well-structured OpenGL application must meticulously save and restore state, sort draw calls by material to minimize pipeline changes, and manually implement batching. A naive OpenGL implementation drawing hundreds of distinct UI elements (buttons, text, icons) would issue hundreds of draw calls, each potentially switching shaders and textures, leading to severe CPU overhead and driver stalls. OpenGL, in its default form (especially when referring
OpenGL runs on virtually every desktop and mobile platform (Windows, macOS via legacy compatibility, Linux, Android, iOS). However, it is a deprecated API on macOS (replaced by Metal) and has been superseded by Vulkan on many high-performance systems. Maintaining an OpenGL backend across platforms increasingly requires fallbacks to Angle (OpenGL on top of DirectX) or other compatibility layers. The same Skia code compiles and runs on