return priv->getShell();
}
+DSWaylandSurface *DSWaylandCompositor::getSurface(uint32_t id)
+{
+ for (auto s : __surfaceList)
+ {
+ if (s->getResourceId() == id)
+ {
+ return s.get();
+ }
+ }
+
+ return nullptr;
+}
+
void DSWaylandCompositor::sendSurfaceDestroy(DSWaylandSurface *dswSurface)
{
for (auto s : __surfaceList)
bool setShell(IDSWaylandShell *shell);
IDSWaylandShell *getShell(void);
+ DSWaylandSurface *getSurface(uint32_t id);
+
void sendSurfaceDestroy(DSWaylandSurface *dswSurface);
void regionDestroy(DSWaylandRegion *dswRegion);
__p_ptr(p_ptr),
__commitInfoPending{std::make_unique<DSWaylandSurfaceCommitInfo>()},
__commitInfo{std::make_shared<DSWaylandSurfaceCommitInfo>()},
- __bufferManager{DSBufferManager::getInstance()}
+ __bufferManager{DSBufferManager::getInstance()},
+ __resId(0)
{}
DSWaylandSurfacePrivate::DSWaylandSurfacePrivate(DSWaylandSurface *p_ptr, DSWaylandClient *waylandClient, uint32_t id)
__p_ptr(p_ptr),
__commitInfoPending{std::make_unique<DSWaylandSurfaceCommitInfo>()},
__commitInfo{std::make_shared<DSWaylandSurfaceCommitInfo>()},
- __bufferManager{DSBufferManager::getInstance()}
+ __bufferManager{DSBufferManager::getInstance()},
+ __resId(0)
{
if (id > 0) {
wl_surface::init(waylandClient->wlClient(), (int)id, 4);
+ __resId = id;
}
}
DSBufferManager::releaseInstance();
}
+uint32_t DSWaylandSurfacePrivate::getResourceId()
+{
+ return __resId;
+}
+
void DSWaylandSurfacePrivate::surface_bind_resource(Resource *resource)
{
}
return false;
}
+uint32_t DSWaylandSurface::getResourceId()
+{
+ DS_GET_PRIV(DSWaylandSurface);
+
+ return priv->getResourceId();
+}
+
} /* namespace display_server */
DSWaylandSurfacePrivate(DSWaylandSurface *p_ptr, DSWaylandClient *waylandClient, uint32_t id);
~DSWaylandSurfacePrivate() override;
+ uint32_t getResourceId();
+
protected:
void surface_bind_resource(Resource *resource) override;
void surface_destroy_resource(Resource *resource) override;
std::unique_ptr<DSWaylandSurfaceCommitInfo> __commitInfoPending;
std::shared_ptr<DSWaylandSurfaceCommitInfo> __commitInfo;
DSBufferManager *__bufferManager;
+ uint32_t __resId;
};
} /*namespace display_server */