首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Linux内核深入分析

    Linux FrameBuffer分析

    /* framebuffer分析 */ /* framebuffer初始化 */ static int __init fbmem_init(void) { proc_create("fb", 0, int register_framebuffer(struct fb_info *fb_info) { ret = do_register_framebuffer(fb_info); } static int do_register_framebuffer(struct fb_info *fb_info) { //查找空闲的fb_info for (i = 0 ; i < FB_MAX; i++ ()函数 4: 硬件相关的初始化 4.1 初始化IO端口用作LCD 4.2 初始化LCDCON1-5 4.3 初始化framebuffer。 并把framebuffer的基地址告诉LCD控制器 4.4 使能LCD。包括背光,LCD控制器, LCD自身的电源 */

    60920编辑于 2022-05-08
  • OpenGL中Framebuffer的学习

    为了使用这个framebuffer,必须给它附加一个texture或者renderbuffer,相当于vao和vbo的关系,framebuffer管理它的texture和renderbuffer,数据都存储在这两个上面 (GL_FRAMEBUFFER)! =GL_FRAMEBUFFER_COMPLETE)//常见失败原因//1.尺寸不一致2.格式不支持3.无颜色附件std::cout<<"FBOisnotcomplete!" (GL_FRAMEBUFFER,fbo);glViewport(0,0,width,height);//必须匹配fbo尺寸renderScene();glBindFramebuffer(GL_FRAMEBUFFER :同时绑定到读写帧缓冲(最常用)GL_READ_FRAMEBUFFER:仅绑定到读取操作(如glReadPixels)GL_DRAW_FRAMEBUFFER:仅绑定到绘制操作(如渲染命令)framebuffer

    22710编辑于 2025-11-08
  • 来自专栏林德熙的博客

    dotnet 统信 UOS 运行 UNO FrameBuffer 应用错误 Failed to open FrameBuffer device

    本文记录在 UOS 统信系统上运行 UNO 的基于 Skia 的 FrameBuffer 应用报错问题,错误提示是 Unhandled exception. System.InvalidOperationException: Failed to open FrameBuffer device /dev/fb0 (13) 的问题。 问题原因是 UNO 应用的 FrameBuffer 写入失败,本文将告诉大家调查方法 首先需要先确定所运行的 UOS 系统是否正常,请根据 Linux Framebuffer 实验 - 浇筑菜鸟 - 博客园

    47210编辑于 2023-11-28
  • 来自专栏全志嵌入式那些事

    LCD Framebuffer应用开发 - 操作原理

    1.1 LCD Framebuffer操作原理 ​ LCD Framebuffer 就是一块显存,在嵌入式系统中,显存是被包含在内存中。 LCD Framebuffer里的若干字节(根据驱动程序对LCD控制器的配置而定)表示LCD屏幕中的一个像素点,一一对应整个LCD屏幕。 举个例子,LCD屏幕是800* 600的分辨率,即LCD屏幕存在480000个像素点,若每个像素点4个字节表示,那么LCD Framebuffer显存大小为480000 * 4=960000字节,即1.92MB 如上图,我们只需要往Framebuffer中填入不同的值,驱动程序和硬件控制器就会把这些数据传输到对应LCD屏幕上的像素点,从而显示不同的颜色。 由此可知,我们应用程序只需要针对Framebuffer操作即可,其他交给驱动程序和硬件。

    46110编辑于 2024-11-23
  • 来自专栏悟空被FFmpeg玩

    将jpeg图片显示在framebuffer

    (env = getenv("FRAMEBUFFER"))) {                 env = "/dev/fb0"; }         

    2.3K10发布于 2019-03-05
  • 来自专栏韦东山嵌入式

    Framebuffer 应用编程中涉及的 API 函数

    本节程序的目的是:打开 LCD 设备节点,获取分辨率等参数,映射 Framebuffer,最后实现描点函数。

    56920编辑于 2022-05-05
  • 来自专栏嵌入式开发圈

    图解LCD硬件原理 && 调色板与Framebuffer原理

    可以通过调整四边黑框调整屏幕边框 BPP(bit per pixel) BPP:在FrameBuffer中每个像素占据多少位, 硬件上LCD的BPP是确定的 但是可以对LCD进行封装 16条线,每个像素占 002 S3C2440_LCD控制器 功能: 1.从内存中(FrameBuffer)取出某个像素的数据:把FrameBuffer的地址告诉LCD控制器,BPP,分辨率 2.配合其他信号把数据发送给LCD 过程:FrameBuffer中8bit —> LCD控制器 —> 调色板中取16bit【用8bit作为索引,取出真正的颜色】 —> LCD 003LCD编程_框架与准备 ? ? pins_pol; /* 时序 */ pins_sequence time_seq; /* 分辨率,bpp */ int xres; int yres; int bpp; /* framebuffer 011使用调色板 在FB中每个象素占8bit怎么转换成LCD所需要的16位数据 在调色板(0—255)中填入真正的16位的颜色 把LCD控制器设置成8bpp时,它回去FrameBuffer中取出一个象素的数据

    2.3K31发布于 2021-07-07
  • 来自专栏韦东山嵌入式

    Linux系统驱动之Framebuffer驱动程序框架

    git工具下载: git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git 视频观看 百问网驱动大全 Framebuffer Framebuffer驱动程序框架 分为上下两层: fbmem.c:承上启下 实现、注册file_operations结构体 把APP的调用向下转发到具体的硬件驱动程序 xxx_fb.c:硬件相关的驱动程序 怎么编写Framebuffer驱动程序 核心: 分配fb_info framebuffer_alloc 设置fb_info var fbops 硬件相关操作 注册fb_info register_framebuffer

    4.2K30编辑于 2021-12-08
  • 来自专栏全志嵌入式那些事

    百问LCD Framebuffer应用开发 - freetype搭建与使用

    ​ 由于100ask开发板已经有freetype相关的库和头文件,因此不需要移植,如果开发板没有freetype库和头文件就需要按以下方法移植

    45910编辑于 2024-11-26
  • 来自专栏10km的专栏

    minigui 3.2.0:直接访问framebuffer的方法及示例

    Uint32 flags; /* Read-only */ GAL_PixelFormat *format; /* 描述FrameBuffer void *video; /* Read-only */ int w, h; /* FrameBuffer int pitch; /* 每行像素的长度(字节) */ void *pixels; /* FrameBuffer ,pitch %d", sf->w,sf->h,sf->format->BitsPerPixel,sf->pitch); // 根据GAL_Surface的参数将fb_bmp初始化为一个映射到FrameBuffer

    1.9K10发布于 2019-05-25
  • 来自专栏韦东山嵌入式

    Linux应用开发【第一章】Framebuffer应用开发

    文章目录 1 Framebuffer应用开发 1.1 LCD Framebuffer操作原理 1.2 Framebuffer API接口 1.2.1 open系统调用 1.2.2 ioctl系统调用 1.2.3 应用开发 1.1 LCD Framebuffer操作原理 ​ LCD Framebuffer 就是一块显存,在嵌入式系统中,显存是被包含在内存中。 LCD Framebuffer里的若干字节(根据驱动程序对LCD控制器的配置而定)表示LCD屏幕中的一个像素点,一一对应整个LCD屏幕。 如上图,我们只需要往Framebuffer中填入不同的值,驱动程序和硬件控制器就会把这些数据传输到对应LCD屏幕上的像素点,从而显示不同的颜色。 由此可知,我们应用程序只需要针对Framebuffer操作即可,其他交给驱动程序和硬件。

    2.3K60编辑于 2021-12-15
  • 来自专栏全志嵌入式那些事

    百问LCD Framebuffer应用开发 - 在LCD上使用点阵写字

    ​ 根据上图,我们分析下如何利用点阵在LCD上显示一个英文字母,因为有十六行,所以首先要有一个循环16次的大循环,然后每一行里有8位,那么在每一个大循环里也需要一个循环8次的小循环,小循环里的判断单行的描点情况,如果是1,就填充白色,如果是0就填充黑色,如此一来,就可以显示出黑色底,白色轮廓的英文字母。

    39310编辑于 2024-11-26
  • 来自专栏QB杂货铺

    提取bmp图片的颜色信息,可直接framebuffer显示(c版本与python版本)

    稍微了解了下linux的framebuffer,这是一种很简单的显示接口,直接写入像素信息即可 配置好的内核,会有/dev/fbn 的接口,于是想能否提前生成一个文件,比如logo.fb,里面仅包含像素信息 ,从而可以直接送入framebuffer显示 搜索了一下,有不少文章介绍,如何解析bmp图片并送给framebuffer显示,但没有找到预处理工具,都是直接处理完就送入framebuffer 于是参考了一篇文章 ,改动了下代码,将直接送入framebuffer变成写到一个文件中。 rgb=struct.pack('BBB',b,g,r) f.write(rgb); 补充,Python版本的拓展:   请查看文章 python将图片转换为Framebuffer

    1.9K40发布于 2019-12-27
  • 来自专栏hank

    ubuntu 18.04, 编译运行ORB_SLAM3, 遇到错误Pangolin X11: Unable to retrieve framebuffer options。

    当前问题 遇到错误Pangolin X11: Unable to retrieve framebuffer options。操作系统是ubuntu 18.04,物理机,不是虚拟机. 按报错Pangolin X11: Unable to retrieve framebuffer options ,修改components/pango_windowing/src/display_x11 called after throwing an instance of 'std::runtime_error' what(): Pangolin X11: Unable to retrieve framebuffer options Aborted (core dumped) 按报错Pangolin X11: Unable to retrieve framebuffer options ,修改components/

    2.3K10编辑于 2021-12-30
  • 来自专栏Flutter入门

    Android OpenGL ES(六)-给相机添加滤镜

    离屏绘制.png 先将OES纹理,绑定到FrameBuffer上。同时会在FrameBuffer上绑定一个新的textureId(这里命名为OffscreenTextureId)。 通常情况下,我们把绑定FrameBuffer和绘制这个新的OffscreenTextureId代表的纹理的过程,称为离屏绘制。 绑定和生成FrameBuffer的时机 创建FrameBuffer。 = GLES20.GL_FRAMEBUFFER_COMPLETE) { throw new RuntimeException("Framebuffer not complete, FrameBuffer.png 所以,我们可以看到申请FrameBuffer需要进行下面的三步 生成一个FrameBuffer 申请一个RenderBuffer,并且挂载GL_DEPTH_ATTACHMENT 将数据挂载到FrameBuffer上。得到挂载在FrameBuffer上的outputTextureId 代码同上,省略 将应用了滤镜的纹理分别绘制到GLView和Encoder当中 ?

    3.2K30发布于 2018-10-10
  • 来自专栏计算机图形学 前端可视化 WebGL

    WebGL2系列之多采样渲染缓冲对象

    , FRAMEBUFFER_SIZE.y); gl.bindFramebuffer(gl.FRAMEBUFFER, frameBuffer); gl.framebufferRenderbuffer(gl.FRAMEBUFFER 其中参数srcX0, srcY0, srcX1, srcY1指定read framebuffer上的区域; dstX0, dstY0, dstX1, dstY1 指定draw framebuffer上的区域 , FRAMEBUFFER_SIZE.y, 0, 0, FRAMEBUFFER_SIZE.x, FRAMEBUFFER_SIZE.y, gl.COLOR_BUFFER_BIT, gl.NEAREST ) ##READ_FRAMEBUFFER和DRAW_FRAMEBUFFER 在webgl1中,帧缓冲区的对象的目标只能是gl.FRAMEBUFFER,而在WebGL2中,增加两种目标: * gl.READ_FRAMEBUFFER DRAW_FRAMEBUFFER上。

    1.4K30发布于 2019-07-18
  • 来自专栏菩提树下的杨过

    mac: vmware fusion中cent os启动假死的解决办法

    console @ 1024x768x64k vga = 791 # Normal VGA console # vga = normal # VESA framebuffer console @ 1024x768x64k # vga=791 # VESA framebuffer console @ 1024x768x32k # vga=790 # VESA framebuffer console @ 1024x768x256 # vga=773 # VESA framebuffer console @ 800x600x64k # vga=788 # VESA framebuffer console @ 800x600x32k # vga=787 # VESA framebuffer console @ 800x600x256 # vga=771 # VESA framebuffer console @ 640x480x64k # vga=785 # VESA framebuffer console @ 640x480x32k # vga=784 # VESA framebuffer console

    90550发布于 2018-01-19
  • 来自专栏韦东山嵌入式

    Linux系统驱动之编写使用多buffer的应用程序

    STM32MP157\source\A7\03_LCD\14_use_multi_framebuffer 参考程序:应用基础课程里使用Framebuffer的精简程序 IMX6ULL\source \03_LCD\14_use_multi_framebuffer\reference\07_framebuffer STM32MP157\source\A7\03_LCD\14_use_multi_framebuffer \reference\07_framebuffer 参考程序:使用多buffer的APP,在GIT仓库里 IMX6ULL\source\03_LCD\13_multi_framebuffer_example \testcamera STM32MP157\source\A7\03_LCD\13_multi_framebuffer_example\testcamera 1. 编译程序 2.1 设置工具链 2.2 编译 设置好工具链后,把14_use_multi_framebuffer上传到Ubuntu,在该目录下执行make即可 3.

    83040编辑于 2021-12-08
  • 来自专栏字节流动

    OpenGL ES 3.0 帧缓冲区失效

    target 必须是 GL_READ_FRAMEBUFFER、GL_DRAW_FRAMEBUFFER 或 GL_FRAMEBUFFER。 标记 GL_FRAMEBUFFER 被视为 GL_DRAW_FRAMEBUFFER。Attachments 包含要失效的 numAttachments 列表。 如果framebuffer对象不完整,glInvalidateFramebuffer可能会被忽略。 mMSAAFramebuffer 绑定的深度缓冲区了,可以将其内容设置为无效 glInvalidateFramebuffer(GL_READ_FRAMEBUFFER, 1, (GLenum[] , 1, attachments1); //无报错,0 glInvalidateFramebuffer(GL_READ_FRAMEBUFFER, 1, attachments1);

    96321编辑于 2023-12-26
  • 来自专栏计算机图形学 前端可视化 WebGL

    WebGL2系列之多采样渲染缓冲对象

    , FRAMEBUFFER_SIZE.y); gl.bindFramebuffer(gl.FRAMEBUFFER, frameBuffer); gl.framebufferRenderbuffer(gl.FRAMEBUFFER 其中参数srcX0, srcY0, srcX1, srcY1指定read framebuffer上的区域; dstX0, dstY0, dstX1, dstY1 指定draw framebuffer上的区域 , FRAMEBUFFER_SIZE.y, 0, 0, FRAMEBUFFER_SIZE.x, FRAMEBUFFER_SIZE.y, gl.COLOR_BUFFER_BIT, gl.NEAREST READ_FRAMEBUFFER和DRAW_FRAMEBUFFER 在webgl1中,帧缓冲区的对象的目标只能是gl.FRAMEBUFFER,而在WebGL2中,增加两种目标: gl.READ_FRAMEBUFFER DRAW_FRAMEBUFFER上。

    1.2K20发布于 2019-07-15
领券