Usage Examples#

Initialize and Release OCIO Context#

import omni.ocio as ocio

# Create an OCIO context from a configuration file
# Using a built-in configuration
config_file = "ocio://studio-config-latest"
ocio_ctx = ocio.get_context(config_file)

# You can also use a custom configuration file
# ocio_ctx = ocio.get_context("/path/to/config.ocio")

# When done, release the context to free resources
ocio.release_context(ocio_ctx)

Access Default Display and View Settings#

import omni.ocio as ocio

# Create an OCIO context
ocio_ctx = ocio.get_context("ocio://studio-config-latest")

# Get the default display name
default_display = ocio.get_default_display_name(ocio_ctx)
print(f"Default display: {default_display}")

# Get the default view name for a specific display
display_name = "sRGB - Display"  # Use an actual display name
default_view = ocio.get_default_view_name(ocio_ctx, display_name)
print(f"Default view for '{display_name}': {default_view}")

# Clean up
ocio.release_context(ocio_ctx)

Extract Display, View and Look Information#

import omni.ocio as ocio

def get_displays_views_and_looks(ocio_ctx):
    """
    Extract all displays, views, and looks from an OCIO context.
    
    Args:
        ocio_ctx: An OpenColorIO context
        
    Returns:
        A tuple of (displays, views_per_display, looks) lists
    """
    displays = []
    views = []
    looks = []

    # Get all displays
    display_count = ocio.get_display_count(ocio_ctx)
    for i in range(display_count):
        display_name = str(ocio.get_display_name(ocio_ctx, i))
        displays.append(display_name)
        
        # Get all views for this display
        disp_views = []
        view_count = ocio.get_view_count(ocio_ctx, i)
        for k in range(view_count):
            view_name = str(ocio.get_view_name(ocio_ctx, i, k))
            disp_views.append(view_name)
        views.append(disp_views)

    # Get all looks
    look_count = ocio.get_look_count(ocio_ctx)
    for j in range(look_count):
        look_name = str(ocio.get_look_name(ocio_ctx, j))
        looks.append(look_name)

    return displays, views, looks

# Example usage
ocio_ctx = ocio.get_context("ocio://studio-config-latest")
displays, views_per_display, looks = get_displays_views_and_looks(ocio_ctx)

# Print some results
print(f"Total displays: {len(displays)}")
print(f"First display: {displays[0]} with views: {views_per_display[0]}")
print(f"Available looks: {looks}")

# Direct API usage example (alternative to the function approach)
print("\nDirect API usage example:")
display_idx = 0
if display_idx < len(displays):
    view_count = ocio.get_view_count(ocio_ctx, display_idx)
    print(f"Display '{displays[display_idx]}' has {view_count} views")

# Clean up
ocio.release_context(ocio_ctx)