当前位置: 首页 > wzjs >正文

基于wamp的动态网站开发百度网盘搜索入口

基于wamp的动态网站开发,百度网盘搜索入口,建网站的公司 快云,未备案网站加速12.1 Console I/O Protocol 12.9 Graphics Output Protocol Graphics Output Protocol 主要是用于取代传统的 VGA 硬件以及对应的 VBIOS,GOP 是一个软件抽象,支持任何可预见的图形设备而不需要 VGA(Video Graphic Array) 硬件&a…

12.1 Console I/O Protocol

12.9 Graphics Output Protocol

Graphics Output Protocol 主要是用于取代传统的 VGA 硬件以及对应的 VBIOS,GOP 是一个软件抽象,支持任何可预见的图形设备而不需要 VGA(Video Graphic Array) 硬件,硬件包括 VGA 显卡 以及 VGA Port,但同时也使适配当前的 VGA 硬件。

VGA 硬件以及 VBIOS 是针对于特定的硬件来执行初始化的,相比于 GOP 缺乏灵活性。

GOP 在目前固件功能的 Pre Boot 空间中非常重要,主要用于实现 Logo 显示,初始化输出的语言以及配置屏幕属性。

GOP 也是需要作为操作系统的一部分,因为在现代操作系统加载高性能 OS 显示驱动前,需要 GOP 来进行显示初始化等。GOP 为操作系统提供访问硬件 Frame Buffer 的接口以及显示输出设备的信息。

GOP driver 提供三个成员函数至此在 Pre Boot 阶段有限的需求:

  1. 初始化 frame buffer
  2. 获取当前的 video 模式
  3. 设置显示模式

GOP 需要包含足够信息用于系统启动软件直接访问线性 Frame Buffer.一个 GOP driver 需要代表一个 Frame Buffer 并且可能被一个或者多个 video 输出设备使用。

12.9.1 Blt Buffer

Block Transfer 允许数据直接被读取或者写入到 video 适配器的 video 内存.Blt 操作通过引入软件 Blt buffer 的概念来抽象 video 适配器概念。帧缓冲区将视频显示抽象为像素数组。视频显示器上的每个像素位置由其X和Y坐标定义。X坐标表示扫描线。扫描线是显示器上像素的水平线。Y坐标表示显示器上的垂直线。视频显示屏的左上角定义为(0,0),其中(X, Y)表示像素的X和Y坐标。视频显示器的右下角用(Width -1, Height -1)表示。

软件Blt缓冲区的结构是一个像素数组。像素(0,0)是软件Blt缓冲区的第一个元素。Blt缓冲区可以被认为是一组扫描线。可以使用以下算法将视频显示器上的像素位置转换为Blt缓冲区:Blt缓冲区数组索引= Y * Width + X。

每个软件Blt缓冲区条目表示一个由32位数量组成的像素。Blt缓冲像素的颜色组件采用PixelBlueGreenRedReserved8BitPerColor格式,定义为

EFI_GRAPHICS_OUTPUT_BLT_PIXEL。红色、绿色和蓝色组件的字节值表示颜色强度。这个颜色强度值的范围从最小强度0到最大强度255。

12.9.2 EFI_GRAPHICS_OUTPUT_PROTOCOL

提供一个基本抽象来设置视频模式和从 graphic controller 的 frame buffer 中复制像素。硬件 frame buffer 的线性地址也被公开,这样软件就可以直接写入视频硬件。

typedef struct EFI_GRAPHICS_OUTPUT_PROTCOL {EFI_GRAPHICS_OUTPUT_PROTOCOL_QUERY_MODE QueryMode;EFI_GRAPHICS_OUTPUT_PROTOCOL_SET_MODE SetMode;EFI_GRAPHICS_OUTPUT_PROTOCOL_BLT Blt;EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE *Mode;
} EFI_GRAPHICS_OUTPUT_PROTOCOL;

QueryMode:返回 graphic 设备以及 active video 输出设备支持的模式信息。

SetMode:设置 Video 的模式,并清除屏幕上的显示,也就是变成全黑色。

Blt:往 video 设备的 frame buffer 上绘制的函数抽象。

Mode:指向EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE 数据的指针。

其他的相关定义:

typedef struct {
UINT32 RedMask;
UINT32 GreenMask;
UINT32 BlueMask;
UINT32 ReservedMask;
} EFI_PIXEL_BITMASK;

位掩码,主要是用于表示相应颜色的深浅分量,比如在 32 bit pixel 中 0xFF000000 表示最深的纯红色,每个颜色掩码之间没有重叠,比如 0xFF000000 表示红色,0x00FF0000 表示绿色,0x0000FF00 表示蓝色。

typedef enum {
PixelRedGreenBlueReserved8BitPerColor,
PixelBlueGreenRedReserved8BitPerColor,
PixelBitMask,
PixelBltOnly,
PixelFormatMax
} EFI_GRAPHICS_PIXEL_FORMAT;

PixelRedGreenBlueReserved8BitPerColor:一个像素是32位,字节0代表红色,字节1代表绿色,字节2代表蓝色,字节3是保留的。这是物理帧缓冲区的定义。红色、绿色和蓝色组件的字节值表示颜色强度。这个颜色强度值的范围从最小强度0到最大强度255。

PixelBlueGreenRedReserved8BitPerColor:同上,只是颜色位置变化。

PixelBitMask:物理帧缓冲区的像素定义由EFI_PIXEL_BITMASK定义。

PixelBltOnly:该模式不支持物理帧缓冲区。

PixelFormatMax::有效的EFI_GRAPHICS_PIXEL_FORMAT enum值小于此值

typedef struct {
UINT32 Version;
UINT32 HorizontalResolution;
UINT32 VerticalResolution;
EFI_GRAPHICS_PIXEL_FORMAT PixelFormat;
EFI_PIXEL_BITMASK PixelInformation;
UINT32 PixelsPerScanLine;
} EFI_GRAPHICS_OUTPUT_MODE_INFORMATION;

Version:数据结构的版本

HorizontalResolution:屏幕的水平分辨率

VerticalResolution:屏幕的垂直分辨率

PixelFormat:定义像素的物理格式的枚举。PixelBltOnly的值意味着线性帧缓冲区不可用于此模。

PixelInformation:这个位掩码只有在PixelFormat设置为PixelPixelBitMask时才有效。被设置的位定义了哪些位用于哪些目的,如红、绿、蓝或保留.

PixelsPerScanLine:定义每个显存行像素元素的数量。出于性能原因,或者由于硬件限制,扫描线可能会被填充到一定的内存对齐量。这些填充像素元素位于HorizontalResolution覆盖的区域之外,不可见。对于直接的帧缓冲区访问,这个数字被用作视频存储器中像素线开始之间的跨度。基于单个像素元素和PixelsPerScanline的大小,视频内存中从像素元素(x, y)到像素元素(x, y+1)的偏移量必须计算为“sizeof(PixelElement) * PixelsPerScanline”,而不是“sizeof(PixelElement)”

* HorizontalResolution”,尽管在许多情况下这些值可以重合。此值可能取决于视频硬件和模式分辨率。GOP实现负责为该字段提供准确的值。

http://www.dtcms.com/wzjs/340452.html

相关文章:

  • 在元典公司做网站有合同吗软文写作范文500字
  • 我看别人做系统就直接网站下载seo还能赚钱吗
  • 为什么公司要做网站广州网站设计
  • 卡密提取网站怎么做百度百科词条
  • 国内如何做国外网站的兼职项目站长工具官网域名查询
  • 中国设计师网效果图网络优化基础知识
  • 海口手机网站制作济南网络推广公司
  • 信息网站建设汇报seo北京优化
  • 大连专业做网站代写平台在哪找
  • 涡阳网站建设哪家好全网营销公司
  • 网站需要每个城市做推广吗搜索引擎优化自然排名的优点
  • 个人网站名可以和别人一样吗中国国家人才培训网官网
  • 贵阳论坛网站建设国内免费域名注册
  • 建网站能上传多少数据seo网站seo
  • 宁夏百度网站怎么做最新seo新手教程
  • 房地产销售头像长沙seo优化排名
  • 如何做网站源码备份小程序开发公司十大排名
  • 二级域名做外贸网站好吗如何推广好一个产品
  • 企业每年向工商网站做申报英文谷歌seo
  • 网站内链接怎么做我对网络营销的理解
  • 做网站python和php哪个好学市场调研方法
  • 辽宁网上注册公司流程seo快速优化软件网站
  • 霍邱网站设计重庆seo推广公司
  • 天河区建设和水务局网站建网站多少钱
  • 畜牧业网站建设制作网站要多少费用
  • 沈阳网站建设培训班百度账号人工客服电话
  • 扬州集团网站建设如何申请百度竞价排名
  • 佛山外贸网站建设方案客户管理系统
  • 微信网站建设报价表武汉百度百科
  • 保定专门做网站的公司百度搜索历史记录