mirror of
https://github.com/hyprwm/Hyprland.git
synced 2025-10-16 23:16:01 +00:00
protocols: refactor class member vars (n-t) (#10273)
This commit is contained in:
@@ -6,21 +6,21 @@
|
||||
CSinglePixelBuffer::CSinglePixelBuffer(uint32_t id, wl_client* client, CHyprColor col_) {
|
||||
LOGM(LOG, "New single-pixel buffer with color 0x{:x}", col_.getAsHex());
|
||||
|
||||
color = col_.getAsHex();
|
||||
m_color = col_.getAsHex();
|
||||
|
||||
g_pHyprRenderer->makeEGLCurrent();
|
||||
|
||||
m_opaque = col_.a >= 1.F;
|
||||
|
||||
m_texture = makeShared<CTexture>(DRM_FORMAT_ARGB8888, (uint8_t*)&color, 4, Vector2D{1, 1});
|
||||
m_texture = makeShared<CTexture>(DRM_FORMAT_ARGB8888, (uint8_t*)&m_color, 4, Vector2D{1, 1});
|
||||
|
||||
m_resource = CWLBufferResource::create(makeShared<CWlBuffer>(client, 1, id));
|
||||
|
||||
success = m_texture->m_iTexID;
|
||||
m_success = m_texture->m_iTexID;
|
||||
|
||||
size = {1, 1};
|
||||
|
||||
if (!success)
|
||||
if (!m_success)
|
||||
Debug::log(ERR, "Failed creating a single pixel texture: null texture id");
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ Aquamarine::SDMABUFAttrs CSinglePixelBuffer::dmabuf() {
|
||||
}
|
||||
|
||||
std::tuple<uint8_t*, uint32_t, size_t> CSinglePixelBuffer::beginDataPtr(uint32_t flags) {
|
||||
return {(uint8_t*)&color, DRM_FORMAT_ARGB8888, 4};
|
||||
return {(uint8_t*)&m_color, DRM_FORMAT_ARGB8888, 4};
|
||||
}
|
||||
|
||||
void CSinglePixelBuffer::endDataPtr() {
|
||||
@@ -62,45 +62,45 @@ bool CSinglePixelBuffer::good() {
|
||||
}
|
||||
|
||||
CSinglePixelBufferResource::CSinglePixelBufferResource(uint32_t id, wl_client* client, CHyprColor color) {
|
||||
buffer = makeShared<CSinglePixelBuffer>(id, client, color);
|
||||
m_buffer = makeShared<CSinglePixelBuffer>(id, client, color);
|
||||
|
||||
if UNLIKELY (!buffer->good())
|
||||
if UNLIKELY (!m_buffer->good())
|
||||
return;
|
||||
|
||||
buffer->m_resource->m_buffer = buffer;
|
||||
m_buffer->m_resource->m_buffer = m_buffer;
|
||||
|
||||
listeners.bufferResourceDestroy = buffer->events.destroy.registerListener([this](std::any d) {
|
||||
listeners.bufferResourceDestroy.reset();
|
||||
m_listeners.bufferResourceDestroy = m_buffer->events.destroy.registerListener([this](std::any d) {
|
||||
m_listeners.bufferResourceDestroy.reset();
|
||||
PROTO::singlePixel->destroyResource(this);
|
||||
});
|
||||
}
|
||||
|
||||
bool CSinglePixelBufferResource::good() {
|
||||
return buffer->good();
|
||||
return m_buffer->good();
|
||||
}
|
||||
|
||||
CSinglePixelBufferManagerResource::CSinglePixelBufferManagerResource(SP<CWpSinglePixelBufferManagerV1> resource_) : resource(resource_) {
|
||||
CSinglePixelBufferManagerResource::CSinglePixelBufferManagerResource(SP<CWpSinglePixelBufferManagerV1> resource_) : m_resource(resource_) {
|
||||
if UNLIKELY (!good())
|
||||
return;
|
||||
|
||||
resource->setDestroy([this](CWpSinglePixelBufferManagerV1* r) { PROTO::singlePixel->destroyResource(this); });
|
||||
resource->setOnDestroy([this](CWpSinglePixelBufferManagerV1* r) { PROTO::singlePixel->destroyResource(this); });
|
||||
m_resource->setDestroy([this](CWpSinglePixelBufferManagerV1* r) { PROTO::singlePixel->destroyResource(this); });
|
||||
m_resource->setOnDestroy([this](CWpSinglePixelBufferManagerV1* r) { PROTO::singlePixel->destroyResource(this); });
|
||||
|
||||
resource->setCreateU32RgbaBuffer([this](CWpSinglePixelBufferManagerV1* res, uint32_t id, uint32_t r, uint32_t g, uint32_t b, uint32_t a) {
|
||||
m_resource->setCreateU32RgbaBuffer([this](CWpSinglePixelBufferManagerV1* res, uint32_t id, uint32_t r, uint32_t g, uint32_t b, uint32_t a) {
|
||||
CHyprColor color{r / (float)std::numeric_limits<uint32_t>::max(), g / (float)std::numeric_limits<uint32_t>::max(), b / (float)std::numeric_limits<uint32_t>::max(),
|
||||
a / (float)std::numeric_limits<uint32_t>::max()};
|
||||
const auto RESOURCE = PROTO::singlePixel->m_vBuffers.emplace_back(makeShared<CSinglePixelBufferResource>(id, resource->client(), color));
|
||||
const auto RESOURCE = PROTO::singlePixel->m_buffers.emplace_back(makeShared<CSinglePixelBufferResource>(id, m_resource->client(), color));
|
||||
|
||||
if UNLIKELY (!RESOURCE->good()) {
|
||||
res->noMemory();
|
||||
PROTO::singlePixel->m_vBuffers.pop_back();
|
||||
PROTO::singlePixel->m_buffers.pop_back();
|
||||
return;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
bool CSinglePixelBufferManagerResource::good() {
|
||||
return resource->resource();
|
||||
return m_resource->resource();
|
||||
}
|
||||
|
||||
CSinglePixelProtocol::CSinglePixelProtocol(const wl_interface* iface, const int& ver, const std::string& name) : IWaylandProtocol(iface, ver, name) {
|
||||
@@ -108,19 +108,19 @@ CSinglePixelProtocol::CSinglePixelProtocol(const wl_interface* iface, const int&
|
||||
}
|
||||
|
||||
void CSinglePixelProtocol::bindManager(wl_client* client, void* data, uint32_t ver, uint32_t id) {
|
||||
const auto RESOURCE = m_vManagers.emplace_back(makeShared<CSinglePixelBufferManagerResource>(makeShared<CWpSinglePixelBufferManagerV1>(client, ver, id)));
|
||||
const auto RESOURCE = m_managers.emplace_back(makeShared<CSinglePixelBufferManagerResource>(makeShared<CWpSinglePixelBufferManagerV1>(client, ver, id)));
|
||||
|
||||
if UNLIKELY (!RESOURCE->good()) {
|
||||
wl_client_post_no_memory(client);
|
||||
m_vManagers.pop_back();
|
||||
m_managers.pop_back();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
void CSinglePixelProtocol::destroyResource(CSinglePixelBufferManagerResource* res) {
|
||||
std::erase_if(m_vManagers, [&](const auto& other) { return other.get() == res; });
|
||||
std::erase_if(m_managers, [&](const auto& other) { return other.get() == res; });
|
||||
}
|
||||
|
||||
void CSinglePixelProtocol::destroyResource(CSinglePixelBufferResource* surf) {
|
||||
std::erase_if(m_vBuffers, [&](const auto& other) { return other.get() == surf; });
|
||||
std::erase_if(m_buffers, [&](const auto& other) { return other.get() == surf; });
|
||||
}
|
||||
|
Reference in New Issue
Block a user