std::function<void(unsigned, unsigned)> surfaceCreated;
/* std::function<void(unsigned)> surfaceDestroyed;
std::function<void(unsigned)> layerCreated;
std::function<void(unsigned, unsigned)> surfaceCreated;
/* std::function<void(unsigned)> surfaceDestroyed;
std::function<void(unsigned)> layerCreated;
WMError init(const LayerControlCallbacks& cb);
void createNewLayer(unsigned id);
unsigned getNewLayerID(const std::string& role, std::string* layer_name);
WMError init(const LayerControlCallbacks& cb);
void createNewLayer(unsigned id);
unsigned getNewLayerID(const std::string& role, std::string* layer_name);
// std::vector<unsigned> getRenderOrder(const std::string& layer_name);
WMError updateLayer(LayerState& layer_state);
WMError commitChange();
// std::vector<unsigned> getRenderOrder(const std::string& layer_name);
WMError updateLayer(LayerState& layer_state);
WMError commitChange();
std::unordered_map<std::string, struct rect> area2size;
unsigned screenID;
struct ilmScreenProperties screen_prop;
std::unordered_map<std::string, struct rect> area2size;
unsigned screenID;
struct ilmScreenProperties screen_prop;