# 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

# 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
sadrul@chromium.org
behdadb@chromium.org

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

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