# For patches touching specific topics, try the topic-specific OWNERS at the
# bottom of the file. For patches that touch multiple areas or if you aren't
# sure, try the more general OWNERS at the bottom.
#
# Folks listed as unofficial can't do OWNERS approvals but are good people to
# ask for informal reviews.

set noparent
# layers
pdr@chromium.org
wangxianzhu@chromium.org

# mac-specific
ccameron@chromium.org

# scheduling / begin frames
sunnyps@chromium.org
szager@chromium.org

# tiles, tile management, and raster work
vmpstr@chromium.org

# texture uploading
sunnyps@chromium.org

# math / geometry
dbaron@chromium.org
flackr@chromium.org

# property trees
chrishtr@chromium.org
pdr@chromium.org
wangxianzhu@chromium.org

# animation
flackr@chromium.org
smcgruer@chromium.org

# images
vmpstr@chromium.org

# surfaces
kylechar@chromium.org
jonross@chromium.org

# input, scrolling
bokan@chromium.org
flackr@chromium.org
skobes@chromium.org

# metrics
jonross@chromium.org

# paint
sunnyps@chromium.org
vasilyt@chromium.org
reed@google.com
fmalita@chromium.org

# general
vmpstr@chromium.org
khushalsagar@chromium.org
