Capability:Graphics

From Rosetta Code
This page is a stub. It needs more information! You can help Rosetta Code by filling it in!
Capability:Graphics
Capabilities characterize abstract requirements of tasks and abilities of languages and libraries.
Browse this capability's properties.


Graphics is, as a capability, the ability to display (or at least write to an image file) some graphical entity. The entity displayed may be a line, a curve, a rectangle, etc. Enclosed entities may or may not be filled. Note that any GUI display automatically requires graphical capability.

Writing text to a console or terminal is not generally considered graphical display as such (even though it has sometimes been used to emulate it).

2D Graphics

  • Tilemap Display: A screen that uses pre-defined square collections of pixels and arranges them onto the screen like puzzle pieces using a two-dimensional array called a "tilemap." This was common in video game consoles in the 80s and 90s. Hardware that uses a tilemap screen is usually capable of multiple layers and smooth scrolling; however the main drawback is that individual pixels that make up the tiles themselves cannot be changed at runtime. Colors are stored separately from the tile graphics; the tile graphics store only a color index that tells the computer which color of the palette that pixel uses. The palette itself is in a separate section of memory.


  • Bitmap Display: A screen that allows you to directly draw to it. Each pixel of the screen has its own memory address, and the value stored at that memory address is its color. While this gives the programmer more freedom in drawing to the screen, it is usually much slower and these screens usually do not support multiple layers.


  • Hardware Sprites: 2D objects that move independently of background layers. They are not confined to a tilemap grid, nor does their presence erase whatever is on the background layer beneath.


  • Software Sprites: These are actually part of a background layer on bitmap display screens. Moving them requires you to erase them at their current location then draw them again somewhere else.