pixel_density()#

This function makes it possible for py5 to render using all of the pixels on high resolutions screens like Apple Retina displays and Windows High-DPI displays.

Examples#

def setup():
    py5.pixel_density(2)
    py5.no_stroke()


def draw():
    py5.background(0)
    py5.ellipse(30, 48, 36, 36)
    py5.ellipse(70, 48, 36, 36)
def setup():
    py5.pixel_density(py5.display_density())
    # pulling the display's density dynamically
    py5.no_stroke()


def draw():
    py5.background(0)
    py5.ellipse(30, 48, 36, 36)
    py5.ellipse(70, 48, 36, 36)

Description#

This function makes it possible for py5 to render using all of the pixels on high resolutions screens like Apple Retina displays and Windows High-DPI displays. This function can only be run once within a program. It is intended to be called from the settings() function.

When programming in module mode and imported mode, py5 will allow calls to pixel_density() from the setup() function if it is called at the beginning of setup(). This allows the user to omit the settings() function, much like what can be done while programming in the Processing IDE. Py5 does this by inspecting the setup() function and attempting to split it into synthetic settings() and setup() functions if both were not created by the user and the real setup() function contains a call to pixel_density(), or calls to size(), full_screen(), smooth(), or no_smooth(). Calls to those functions must be at the very beginning of setup(), before any other Python code (but comments are ok). This feature is not available when programming in class mode.

The pixel_density() should only be used with hardcoded numbers (in almost all cases this number will be 2) or in combination with display_density() as in the second example.

When the pixel density is set to more than 1, it changes all of the pixel operations including the way get_pixels(), set_pixels(), blend(), copy(), update_pixels(), and update_np_pixels() all work. See the reference for pixel_width and pixel_height for more information.

Underlying Processing method: pixelDensity

Signatures#

pixel_density(
    density: int,  # 1 or 2
    /,
) -> None

Updated on March 18, 2024 05:08:14am UTC