autocommit 2022-04-07 17:31:31 CEST
This commit is contained in:
parent
1d33088dba
commit
be32036824
200 changed files with 3267 additions and 2479 deletions
|
|
@ -1,22 +1,26 @@
|
|||
use crate::render::egl::sys::{
|
||||
eglBindAPI, EGLAttrib, EGLLabelKHR, EGLenum, EGLint, EGL_DEBUG_MSG_CRITICAL_KHR,
|
||||
EGL_DEBUG_MSG_ERROR_KHR, EGL_DEBUG_MSG_INFO_KHR, EGL_DEBUG_MSG_WARN_KHR, EGL_NONE,
|
||||
EGL_OPENGL_ES_API, EGL_TRUE,
|
||||
use {
|
||||
crate::render::{
|
||||
egl::sys::{
|
||||
eglBindAPI, EGLAttrib, EGLLabelKHR, EGLenum, EGLint, EGL_DEBUG_MSG_CRITICAL_KHR,
|
||||
EGL_DEBUG_MSG_ERROR_KHR, EGL_DEBUG_MSG_INFO_KHR, EGL_DEBUG_MSG_WARN_KHR, EGL_NONE,
|
||||
EGL_OPENGL_ES_API, EGL_TRUE,
|
||||
},
|
||||
ext::{get_client_ext, ClientExt},
|
||||
proc::ExtProc,
|
||||
RenderError,
|
||||
},
|
||||
bstr::ByteSlice,
|
||||
log::Level,
|
||||
once_cell::sync::Lazy,
|
||||
std::ffi::CStr,
|
||||
sys::{
|
||||
EGL_BAD_ACCESS, EGL_BAD_ALLOC, EGL_BAD_ATTRIBUTE, EGL_BAD_CONFIG, EGL_BAD_CONTEXT,
|
||||
EGL_BAD_CURRENT_SURFACE, EGL_BAD_DEVICE_EXT, EGL_BAD_DISPLAY, EGL_BAD_MATCH,
|
||||
EGL_BAD_NATIVE_PIXMAP, EGL_BAD_NATIVE_WINDOW, EGL_BAD_PARAMETER, EGL_BAD_SURFACE,
|
||||
EGL_CONTEXT_LOST, EGL_NOT_INITIALIZED, EGL_SUCCESS,
|
||||
},
|
||||
uapi::c,
|
||||
};
|
||||
use crate::render::ext::{get_client_ext, ClientExt};
|
||||
use crate::render::proc::ExtProc;
|
||||
use crate::render::RenderError;
|
||||
use bstr::ByteSlice;
|
||||
use log::Level;
|
||||
use once_cell::sync::Lazy;
|
||||
use std::ffi::CStr;
|
||||
use sys::{
|
||||
EGL_BAD_ACCESS, EGL_BAD_ALLOC, EGL_BAD_ATTRIBUTE, EGL_BAD_CONFIG, EGL_BAD_CONTEXT,
|
||||
EGL_BAD_CURRENT_SURFACE, EGL_BAD_DEVICE_EXT, EGL_BAD_DISPLAY, EGL_BAD_MATCH,
|
||||
EGL_BAD_NATIVE_PIXMAP, EGL_BAD_NATIVE_WINDOW, EGL_BAD_PARAMETER, EGL_BAD_SURFACE,
|
||||
EGL_CONTEXT_LOST, EGL_NOT_INITIALIZED, EGL_SUCCESS,
|
||||
};
|
||||
use uapi::c;
|
||||
|
||||
pub mod context;
|
||||
pub mod display;
|
||||
|
|
|
|||
|
|
@ -1,10 +1,14 @@
|
|||
use crate::render::egl::display::EglDisplay;
|
||||
use crate::render::egl::sys::{
|
||||
eglDestroyContext, eglMakeCurrent, EGLContext, EGLSurface, EGL_FALSE, EGL_TRUE,
|
||||
use {
|
||||
crate::render::{
|
||||
egl::{
|
||||
display::EglDisplay,
|
||||
sys::{eglDestroyContext, eglMakeCurrent, EGLContext, EGLSurface, EGL_FALSE, EGL_TRUE},
|
||||
},
|
||||
ext::GlExt,
|
||||
RenderError,
|
||||
},
|
||||
std::rc::Rc,
|
||||
};
|
||||
use crate::render::ext::GlExt;
|
||||
use crate::render::RenderError;
|
||||
use std::rc::Rc;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct EglContext {
|
||||
|
|
|
|||
|
|
@ -1,30 +1,36 @@
|
|||
use crate::drm::dma::DmaBuf;
|
||||
use crate::drm::drm::Drm;
|
||||
use crate::drm::gbm::GbmDevice;
|
||||
use crate::drm::INVALID_MODIFIER;
|
||||
use crate::format::{formats, Format};
|
||||
use crate::render::egl::context::EglContext;
|
||||
use crate::render::egl::image::EglImage;
|
||||
use crate::render::egl::sys::{
|
||||
eglCreateContext, eglTerminate, EGLClientBuffer, EGLConfig, EGLContext, EGLDisplay, EGLint,
|
||||
EGL_CONTEXT_CLIENT_VERSION, EGL_DMA_BUF_PLANE0_FD_EXT, EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT,
|
||||
EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT, EGL_DMA_BUF_PLANE0_OFFSET_EXT,
|
||||
EGL_DMA_BUF_PLANE0_PITCH_EXT, EGL_DMA_BUF_PLANE1_FD_EXT, EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT,
|
||||
EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT, EGL_DMA_BUF_PLANE1_OFFSET_EXT,
|
||||
EGL_DMA_BUF_PLANE1_PITCH_EXT, EGL_DMA_BUF_PLANE2_FD_EXT, EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT,
|
||||
EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT, EGL_DMA_BUF_PLANE2_OFFSET_EXT,
|
||||
EGL_DMA_BUF_PLANE2_PITCH_EXT, EGL_DMA_BUF_PLANE3_FD_EXT, EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT,
|
||||
EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT, EGL_DMA_BUF_PLANE3_OFFSET_EXT,
|
||||
EGL_DMA_BUF_PLANE3_PITCH_EXT, EGL_HEIGHT, EGL_IMAGE_PRESERVED_KHR, EGL_LINUX_DMA_BUF_EXT,
|
||||
EGL_LINUX_DRM_FOURCC_EXT, EGL_NONE, EGL_TRUE, EGL_WIDTH,
|
||||
use {
|
||||
crate::{
|
||||
video::{dma::DmaBuf, drm::Drm, gbm::GbmDevice, INVALID_MODIFIER},
|
||||
format::{formats, Format},
|
||||
render::{
|
||||
egl::{
|
||||
context::EglContext,
|
||||
image::EglImage,
|
||||
sys::{
|
||||
eglCreateContext, eglTerminate, EGLClientBuffer, EGLConfig, EGLContext,
|
||||
EGLDisplay, EGLint, EGL_CONTEXT_CLIENT_VERSION, EGL_DMA_BUF_PLANE0_FD_EXT,
|
||||
EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT, EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT,
|
||||
EGL_DMA_BUF_PLANE0_OFFSET_EXT, EGL_DMA_BUF_PLANE0_PITCH_EXT,
|
||||
EGL_DMA_BUF_PLANE1_FD_EXT, EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT,
|
||||
EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT, EGL_DMA_BUF_PLANE1_OFFSET_EXT,
|
||||
EGL_DMA_BUF_PLANE1_PITCH_EXT, EGL_DMA_BUF_PLANE2_FD_EXT,
|
||||
EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT, EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT,
|
||||
EGL_DMA_BUF_PLANE2_OFFSET_EXT, EGL_DMA_BUF_PLANE2_PITCH_EXT,
|
||||
EGL_DMA_BUF_PLANE3_FD_EXT, EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT,
|
||||
EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT, EGL_DMA_BUF_PLANE3_OFFSET_EXT,
|
||||
EGL_DMA_BUF_PLANE3_PITCH_EXT, EGL_HEIGHT, EGL_IMAGE_PRESERVED_KHR,
|
||||
EGL_LINUX_DMA_BUF_EXT, EGL_LINUX_DRM_FOURCC_EXT, EGL_NONE, EGL_TRUE, EGL_WIDTH,
|
||||
},
|
||||
PROCS,
|
||||
},
|
||||
ext::{get_display_ext, get_gl_ext, DisplayExt, GlExt},
|
||||
sys::{eglInitialize, EGL_PLATFORM_GBM_KHR},
|
||||
RenderError,
|
||||
},
|
||||
},
|
||||
ahash::AHashMap,
|
||||
std::{ptr, rc::Rc},
|
||||
};
|
||||
use crate::render::egl::PROCS;
|
||||
use crate::render::ext::{get_display_ext, get_gl_ext, DisplayExt, GlExt};
|
||||
use crate::render::sys::{eglInitialize, EGL_PLATFORM_GBM_KHR};
|
||||
use crate::render::RenderError;
|
||||
use ahash::AHashMap;
|
||||
use std::ptr;
|
||||
use std::rc::Rc;
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct EglDisplay {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,11 @@
|
|||
use crate::render::egl::display::EglDisplay;
|
||||
use crate::render::egl::sys::{EGLImageKHR, EGL_FALSE};
|
||||
use crate::render::egl::PROCS;
|
||||
use std::rc::Rc;
|
||||
use {
|
||||
crate::render::egl::{
|
||||
display::EglDisplay,
|
||||
sys::{EGLImageKHR, EGL_FALSE},
|
||||
PROCS,
|
||||
},
|
||||
std::rc::Rc,
|
||||
};
|
||||
|
||||
pub struct EglImage {
|
||||
pub dpy: Rc<EglDisplay>,
|
||||
|
|
|
|||
|
|
@ -1,12 +1,16 @@
|
|||
use crate::render::egl::sys::{eglQueryString, EGLDisplay, EGL_EXTENSIONS};
|
||||
use crate::render::gl::sys::{glGetString, GL_EXTENSIONS};
|
||||
use crate::utils::trim::AsciiTrim;
|
||||
use ahash::AHashSet;
|
||||
use bstr::ByteSlice;
|
||||
use std::ffi::CStr;
|
||||
use std::ops::BitOrAssign;
|
||||
use std::str;
|
||||
use uapi::c;
|
||||
use {
|
||||
crate::{
|
||||
render::{
|
||||
egl::sys::{eglQueryString, EGLDisplay, EGL_EXTENSIONS},
|
||||
gl::sys::{glGetString, GL_EXTENSIONS},
|
||||
},
|
||||
utils::trim::AsciiTrim,
|
||||
},
|
||||
ahash::AHashSet,
|
||||
bstr::ByteSlice,
|
||||
std::{ffi::CStr, ops::BitOrAssign, str},
|
||||
uapi::c,
|
||||
};
|
||||
|
||||
unsafe fn get_extensions(ext: *const c::c_char) -> Option<AHashSet<String>> {
|
||||
if ext.is_null() {
|
||||
|
|
|
|||
|
|
@ -1,12 +1,19 @@
|
|||
use crate::rect::Rect;
|
||||
use crate::render::egl::context::EglContext;
|
||||
use crate::render::gl::render_buffer::GlRenderBuffer;
|
||||
use crate::render::gl::sys::{glDeleteFramebuffers, GLuint};
|
||||
use crate::render::gl::texture::GlTexture;
|
||||
use crate::render::sys::{glDisable, glEnable, glScissor, GL_SCISSOR_TEST};
|
||||
use crate::utils::ptr_ext::PtrExt;
|
||||
use std::ptr;
|
||||
use std::rc::Rc;
|
||||
use {
|
||||
crate::{
|
||||
rect::Rect,
|
||||
render::{
|
||||
egl::context::EglContext,
|
||||
gl::{
|
||||
render_buffer::GlRenderBuffer,
|
||||
sys::{glDeleteFramebuffers, GLuint},
|
||||
texture::GlTexture,
|
||||
},
|
||||
sys::{glDisable, glEnable, glScissor, GL_SCISSOR_TEST},
|
||||
},
|
||||
utils::ptr_ext::PtrExt,
|
||||
},
|
||||
std::{ptr, rc::Rc},
|
||||
};
|
||||
|
||||
pub struct GlFrameBuffer {
|
||||
pub _rb: Option<Rc<GlRenderBuffer>>,
|
||||
|
|
|
|||
|
|
@ -1,13 +1,19 @@
|
|||
use crate::render::egl::context::EglContext;
|
||||
use crate::render::gl::shader::GlShader;
|
||||
use crate::render::gl::sys::{
|
||||
glAttachShader, glCreateProgram, glDeleteProgram, glDetachShader, glGetAttribLocation,
|
||||
glGetProgramiv, glGetUniformLocation, glLinkProgram, GLint, GLuint, GL_FALSE, GL_LINK_STATUS,
|
||||
use {
|
||||
crate::render::{
|
||||
egl::context::EglContext,
|
||||
gl::{
|
||||
shader::GlShader,
|
||||
sys::{
|
||||
glAttachShader, glCreateProgram, glDeleteProgram, glDetachShader,
|
||||
glGetAttribLocation, glGetProgramiv, glGetUniformLocation, glLinkProgram, GLint,
|
||||
GLuint, GL_FALSE, GL_FRAGMENT_SHADER, GL_LINK_STATUS, GL_VERTEX_SHADER,
|
||||
},
|
||||
},
|
||||
RenderError,
|
||||
},
|
||||
std::rc::Rc,
|
||||
uapi::Ustr,
|
||||
};
|
||||
use crate::render::gl::sys::{GL_FRAGMENT_SHADER, GL_VERTEX_SHADER};
|
||||
use crate::render::RenderError;
|
||||
use std::rc::Rc;
|
||||
use uapi::Ustr;
|
||||
|
||||
pub struct GlProgram {
|
||||
pub _ctx: Rc<EglContext>,
|
||||
|
|
|
|||
|
|
@ -1,14 +1,19 @@
|
|||
use crate::render::egl::context::EglContext;
|
||||
use crate::render::egl::image::EglImage;
|
||||
use crate::render::egl::PROCS;
|
||||
use crate::render::gl::frame_buffer::GlFrameBuffer;
|
||||
use crate::render::gl::sys::{
|
||||
glBindFramebuffer, glBindRenderbuffer, glCheckFramebufferStatus, glDeleteRenderbuffers,
|
||||
glFramebufferRenderbuffer, glGenFramebuffers, glGenRenderbuffers, GLeglImageOES, GLuint,
|
||||
GL_COLOR_ATTACHMENT0, GL_FRAMEBUFFER, GL_FRAMEBUFFER_COMPLETE, GL_RENDERBUFFER,
|
||||
use {
|
||||
crate::render::{
|
||||
egl::{context::EglContext, image::EglImage, PROCS},
|
||||
gl::{
|
||||
frame_buffer::GlFrameBuffer,
|
||||
sys::{
|
||||
glBindFramebuffer, glBindRenderbuffer, glCheckFramebufferStatus,
|
||||
glDeleteRenderbuffers, glFramebufferRenderbuffer, glGenFramebuffers,
|
||||
glGenRenderbuffers, GLeglImageOES, GLuint, GL_COLOR_ATTACHMENT0, GL_FRAMEBUFFER,
|
||||
GL_FRAMEBUFFER_COMPLETE, GL_RENDERBUFFER,
|
||||
},
|
||||
},
|
||||
RenderError,
|
||||
},
|
||||
std::rc::Rc,
|
||||
};
|
||||
use crate::render::RenderError;
|
||||
use std::rc::Rc;
|
||||
|
||||
pub struct GlRenderBuffer {
|
||||
pub img: Rc<EglImage>,
|
||||
|
|
|
|||
|
|
@ -1,11 +1,15 @@
|
|||
use crate::render::egl::context::EglContext;
|
||||
use crate::render::gl::sys::{
|
||||
glCompileShader, glCreateShader, glDeleteShader, glGetShaderiv, glShaderSource, GLenum, GLuint,
|
||||
GL_COMPILE_STATUS, GL_FALSE,
|
||||
use {
|
||||
crate::render::{
|
||||
egl::context::EglContext,
|
||||
gl::sys::{
|
||||
glCompileShader, glCreateShader, glDeleteShader, glGetShaderiv, glShaderSource, GLenum,
|
||||
GLuint, GL_COMPILE_STATUS, GL_FALSE,
|
||||
},
|
||||
sys::GLint,
|
||||
RenderError,
|
||||
},
|
||||
std::rc::Rc,
|
||||
};
|
||||
use crate::render::sys::GLint;
|
||||
use crate::render::RenderError;
|
||||
use std::rc::Rc;
|
||||
|
||||
pub struct GlShader {
|
||||
pub ctx: Rc<EglContext>,
|
||||
|
|
|
|||
|
|
@ -1,20 +1,25 @@
|
|||
use crate::format::Format;
|
||||
use crate::render::egl::context::EglContext;
|
||||
use crate::render::egl::image::EglImage;
|
||||
use crate::render::egl::PROCS;
|
||||
use crate::render::gl::frame_buffer::GlFrameBuffer;
|
||||
use crate::render::gl::sys::{
|
||||
glBindFramebuffer, glBindTexture, glCheckFramebufferStatus, glDeleteTextures,
|
||||
glFramebufferTexture2D, glGenFramebuffers, glGenTextures, glPixelStorei, glTexImage2D,
|
||||
glTexParameteri, GLint, GLuint, GL_CLAMP_TO_EDGE, GL_COLOR_ATTACHMENT0, GL_FRAMEBUFFER,
|
||||
GL_FRAMEBUFFER_COMPLETE, GL_LINEAR, GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
|
||||
GL_TEXTURE_MIN_FILTER, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_UNPACK_ROW_LENGTH_EXT,
|
||||
use {
|
||||
crate::{
|
||||
format::Format,
|
||||
render::{
|
||||
egl::{context::EglContext, image::EglImage, PROCS},
|
||||
gl::{
|
||||
frame_buffer::GlFrameBuffer,
|
||||
sys::{
|
||||
glBindFramebuffer, glBindTexture, glCheckFramebufferStatus, glDeleteTextures,
|
||||
glFramebufferTexture2D, glGenFramebuffers, glGenTextures, glPixelStorei,
|
||||
glTexImage2D, glTexParameteri, GLint, GLuint, GL_CLAMP_TO_EDGE,
|
||||
GL_COLOR_ATTACHMENT0, GL_FRAMEBUFFER, GL_FRAMEBUFFER_COMPLETE, GL_LINEAR,
|
||||
GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_WRAP_S,
|
||||
GL_TEXTURE_WRAP_T, GL_UNPACK_ROW_LENGTH_EXT,
|
||||
},
|
||||
},
|
||||
sys::GLeglImageOES,
|
||||
RenderError,
|
||||
},
|
||||
},
|
||||
std::{cell::Cell, ptr, rc::Rc},
|
||||
};
|
||||
use crate::render::sys::GLeglImageOES;
|
||||
use crate::render::RenderError;
|
||||
use std::cell::Cell;
|
||||
use std::ptr;
|
||||
use std::rc::Rc;
|
||||
|
||||
pub struct GlTexture {
|
||||
pub(super) ctx: Rc<EglContext>,
|
||||
|
|
|
|||
|
|
@ -1,8 +1,4 @@
|
|||
pub use context::*;
|
||||
pub use framebuffer::*;
|
||||
pub use image::*;
|
||||
pub use renderer::*;
|
||||
pub use texture::*;
|
||||
pub use {context::*, framebuffer::*, image::*, renderer::*, texture::*};
|
||||
|
||||
mod context;
|
||||
mod framebuffer;
|
||||
|
|
|
|||
|
|
@ -1,21 +1,28 @@
|
|||
use crate::drm::dma::DmaBuf;
|
||||
use crate::drm::drm::{Drm, NodeType};
|
||||
use crate::format::{Format, XRGB8888};
|
||||
use crate::render::egl::context::EglContext;
|
||||
use crate::render::egl::display::EglDisplay;
|
||||
use crate::render::gl::program::GlProgram;
|
||||
use crate::render::gl::render_buffer::GlRenderBuffer;
|
||||
use crate::render::gl::sys::GLint;
|
||||
use crate::render::gl::texture::GlTexture;
|
||||
use crate::render::renderer::framebuffer::Framebuffer;
|
||||
use crate::render::renderer::image::Image;
|
||||
use crate::render::{RenderError, Texture};
|
||||
use ahash::AHashMap;
|
||||
use std::cell::Cell;
|
||||
use std::ffi::CString;
|
||||
use std::fmt::{Debug, Formatter};
|
||||
use std::rc::Rc;
|
||||
use uapi::ustr;
|
||||
use {
|
||||
crate::{
|
||||
video::{
|
||||
dma::DmaBuf,
|
||||
drm::{Drm, NodeType},
|
||||
},
|
||||
format::{Format, XRGB8888},
|
||||
render::{
|
||||
egl::{context::EglContext, display::EglDisplay},
|
||||
gl::{
|
||||
program::GlProgram, render_buffer::GlRenderBuffer, sys::GLint, texture::GlTexture,
|
||||
},
|
||||
renderer::{framebuffer::Framebuffer, image::Image},
|
||||
RenderError, Texture,
|
||||
},
|
||||
},
|
||||
ahash::AHashMap,
|
||||
std::{
|
||||
cell::Cell,
|
||||
ffi::CString,
|
||||
fmt::{Debug, Formatter},
|
||||
rc::Rc,
|
||||
},
|
||||
uapi::ustr,
|
||||
};
|
||||
|
||||
pub(super) struct TexProg {
|
||||
pub(super) prog: GlProgram,
|
||||
|
|
|
|||
|
|
@ -1,15 +1,25 @@
|
|||
use crate::rect::Rect;
|
||||
use crate::render::gl::frame_buffer::GlFrameBuffer;
|
||||
use crate::render::gl::sys::{
|
||||
glBindFramebuffer, glClear, glClearColor, glViewport, GL_COLOR_BUFFER_BIT, GL_FRAMEBUFFER,
|
||||
use {
|
||||
crate::{
|
||||
rect::Rect,
|
||||
render::{
|
||||
gl::{
|
||||
frame_buffer::GlFrameBuffer,
|
||||
sys::{
|
||||
glBindFramebuffer, glClear, glClearColor, glViewport, GL_COLOR_BUFFER_BIT,
|
||||
GL_FRAMEBUFFER,
|
||||
},
|
||||
},
|
||||
renderer::{context::RenderContext, renderer::Renderer},
|
||||
sys::{glBlendFunc, glFlush, GL_ONE, GL_ONE_MINUS_SRC_ALPHA},
|
||||
},
|
||||
state::State,
|
||||
tree::Node,
|
||||
},
|
||||
std::{
|
||||
fmt::{Debug, Formatter},
|
||||
rc::Rc,
|
||||
},
|
||||
};
|
||||
use crate::render::renderer::context::RenderContext;
|
||||
use crate::render::renderer::renderer::Renderer;
|
||||
use crate::render::sys::{glBlendFunc, glFlush, GL_ONE, GL_ONE_MINUS_SRC_ALPHA};
|
||||
use crate::state::State;
|
||||
use crate::tree::Node;
|
||||
use std::fmt::{Debug, Formatter};
|
||||
use std::rc::Rc;
|
||||
|
||||
pub struct Framebuffer {
|
||||
pub(super) ctx: Rc<RenderContext>,
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
use crate::render::egl::image::EglImage;
|
||||
use crate::render::gl::texture::GlTexture;
|
||||
use crate::render::{RenderContext, RenderError, Texture};
|
||||
use std::rc::Rc;
|
||||
use {
|
||||
crate::render::{
|
||||
egl::image::EglImage, gl::texture::GlTexture, RenderContext, RenderError, Texture,
|
||||
},
|
||||
std::rc::Rc,
|
||||
};
|
||||
|
||||
pub struct Image {
|
||||
pub(super) ctx: Rc<RenderContext>,
|
||||
|
|
|
|||
|
|
@ -1,25 +1,35 @@
|
|||
use crate::format::{Format, ARGB8888};
|
||||
use crate::ifs::wl_buffer::WlBuffer;
|
||||
use crate::ifs::wl_surface::xdg_surface::XdgSurface;
|
||||
use crate::ifs::wl_surface::zwlr_layer_surface_v1::ZwlrLayerSurfaceV1;
|
||||
use crate::ifs::wl_surface::WlSurface;
|
||||
use crate::rect::Rect;
|
||||
use crate::render::gl::frame_buffer::{with_scissor, GlFrameBuffer};
|
||||
use crate::render::gl::sys::{
|
||||
glActiveTexture, glBindTexture, glDisableVertexAttribArray, glDrawArrays,
|
||||
glEnableVertexAttribArray, glTexParameteri, glUniform1i, glUniform4f, glUseProgram,
|
||||
glVertexAttribPointer, GL_FALSE, GL_FLOAT, GL_LINEAR, GL_TEXTURE0, GL_TEXTURE_2D,
|
||||
GL_TEXTURE_MIN_FILTER, GL_TRIANGLES, GL_TRIANGLE_STRIP,
|
||||
use {
|
||||
crate::{
|
||||
format::{Format, ARGB8888},
|
||||
ifs::{
|
||||
wl_buffer::WlBuffer,
|
||||
wl_surface::{
|
||||
xdg_surface::XdgSurface, zwlr_layer_surface_v1::ZwlrLayerSurfaceV1, WlSurface,
|
||||
},
|
||||
},
|
||||
rect::Rect,
|
||||
render::{
|
||||
gl::{
|
||||
frame_buffer::{with_scissor, GlFrameBuffer},
|
||||
sys::{
|
||||
glActiveTexture, glBindTexture, glDisableVertexAttribArray, glDrawArrays,
|
||||
glEnableVertexAttribArray, glTexParameteri, glUniform1i, glUniform4f,
|
||||
glUseProgram, glVertexAttribPointer, GL_FALSE, GL_FLOAT, GL_LINEAR,
|
||||
GL_TEXTURE0, GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_TRIANGLES,
|
||||
GL_TRIANGLE_STRIP,
|
||||
},
|
||||
},
|
||||
renderer::context::RenderContext,
|
||||
sys::{glDisable, glEnable, GL_BLEND},
|
||||
Texture,
|
||||
},
|
||||
state::State,
|
||||
theme::Color,
|
||||
tree::{ContainerNode, FloatNode, Node, OutputNode, WorkspaceNode},
|
||||
utils::rc_eq::rc_eq,
|
||||
},
|
||||
std::{ops::Deref, rc::Rc},
|
||||
};
|
||||
use crate::render::renderer::context::RenderContext;
|
||||
use crate::render::sys::{glDisable, glEnable, GL_BLEND};
|
||||
use crate::render::Texture;
|
||||
use crate::state::State;
|
||||
use crate::theme::Color;
|
||||
use crate::tree::{ContainerNode, FloatNode, Node, OutputNode, WorkspaceNode};
|
||||
use crate::utils::rc_eq::rc_eq;
|
||||
use std::ops::Deref;
|
||||
use std::rc::Rc;
|
||||
|
||||
pub struct Renderer<'a> {
|
||||
pub(super) ctx: &'a Rc<RenderContext>,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
use crate::render::gl::texture::GlTexture;
|
||||
use crate::render::renderer::context::RenderContext;
|
||||
use std::rc::Rc;
|
||||
use {
|
||||
crate::render::{gl::texture::GlTexture, renderer::context::RenderContext},
|
||||
std::rc::Rc,
|
||||
};
|
||||
|
||||
pub struct Texture {
|
||||
pub(super) ctx: Rc<RenderContext>,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue