操作系统DC分析1

通过显示窗口过程来分析一下DC

要将内容显示在屏幕上,1、方法bios中断,2、写端口,3、写内存,其他(暂时不知道)

本次采用的写内存方法,

显卡有一个内存,只要将要显示的内容写入内存即可显示在屏幕上,

        显示窗口,即将窗口对应的内容写入显卡内存,因此窗口需要指向一个地址,该地址可以是内存也可以是显存。如果直接用显存好处是节省内存,减少复制时间的花费,缺点是容易产生闪烁;如果选用一块内存作缓冲,可以减少工作量,特别是窗口切换和移动时的工作量。显卡的内存是否可以给窗口单独使用,修改的时候不显示,待修改完后让显卡一次性显示,暂时还没找到方法。这好象是openGL 的内容。也是AGP和VGA的区别(猜的)

        还有一个疑问,窗口vram的地址是放在用户空间还是系统空间。放在系统内存好处是系统刷新窗口不用切换进程,坏处是系统空间只有2G,窗口多了是否够用,是放堆内,还是另外申请空间,还有建立DC时需切换至内核态;放在用户空间则释放的时候可以省略时间,一个进程本身窗口不会太多。

几个注意的地方

       1、 只有顶级窗口DC有内存,其他的子窗口与顶级窗口共享内存块,

       2、起点(x0,y0),窗口与DC的不同,顶级窗口起点为屏幕窗口的相对位置,子窗口为顶级窗口的相对位置,如果是孙子窗口,则需考虑父窗口的位置。

       3、窗口内存与DC内存指向同一块地址,除部分操作(移动,)其他窗口大部分操作都是通过DC操作,

      4、DC是与窗口同时建立还是在调用GetDC、GetWindowDC时建立。从这两个api及eleaseDC字面上理解,窗口建立时DC就是存在的,但个人觉得还是调用上述API建立好一点。这样ReleaseDC就是删除DC,但DeleteDC对应的是CreateDCA 与前面的删除不用的是 内存块是否释放的区别。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/752743.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Conda 环境迁移

1. 进入需要迁移的环境: conda activate yolov8 2.打包迁移环境,注意安装打包库 pip install conda-packconda pack -n yolov83. 转移打包的环境包,放到anaconda/envs 下面, 在envs 下面新建环境文件夹,解压环境包到&#xff1…

JS核心知识点 - 赋值、浅拷贝、深拷贝。

一、理解基础数据类型和引用数据类型 基础数据类型: 字符串(String):表示文本数据,使用引号括起来。数字(Number):表示数值数据,包括整数和浮点数。布尔值(Bo…

vulhub中Apache Shiro 认证绕过漏洞复现(CVE-2010-3863)

Apache Shiro是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。 在Apache Shiro 1.1.0以前的版本中,shiro 进行权限验证前未对url 做标准化处理,攻击者可以构造/、//、…

[ Linux ] vim的使用(附:命令模式的常见命令列表)

1.下载安装 这里是在通过yum进行下载安装 yum install -y vim 2.了解 vim是一款编辑器,它具有多模式的特点 主要有:插入模式,命令模式,底行模式 3.使用 打开 vim 文件名 命令模式的常见命令列表 插入模式 按「 i 」切换…

A Survey on Multimodal Large Language Models

目录 1. Introduction2. 概述方法多模态指令调优 3.1.1 简介3.1.2 预备知识3.1.3 模态对齐3.1.4 数据3.1.5 模态桥接3.1.6 评估 3.2.多模态情境学习3.3.多模态思维链3.3.1 模态桥接3.3.2 学习范式3.3.3 链配置3.3.4 生成模式3.4.LLMs辅助视觉推理3.4.1 简介3.4.2 训练范式3.4.3…

医疗隔离电源系统在医院配电系统应用分析

【摘要】根据医疗场所分类说明医院尤其是 2 类 医疗场所的接地方案,分析医疗场所自动切断电源措 施,提出校验医疗 IT 系统配出回路长度;说明 RCD、RCM、IMD、IFLS 等的用途和范围;就应急医 院 2 类场所的配电方案进行探讨。 【关…

B005-springcloud alibaba 服务网关 Gateway

目录 网关简介Gateway简介Gateway快速入门基础版增强版简写版 Gateway概念及执行流程基本概念执行流程 断言Gateway内置路由断言内置路由断言工厂的使用 自定义路由断言工厂 过滤器过滤器简介局部过滤器内置局部过滤器自定义局部过滤器 全局过滤器内置全局过滤器自定义全局过滤…

【机器学习】详细解析Sklearn中的StandardScaler---原理、应用、源码与注意事项

【机器学习】详细解析Sklearn中的StandardScaler—原理、应用、源码与注意事项 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x…

用python写网络爬虫:3.urllib库进一步的使用方法

文章目录 异常处理URLErrorHTTPError设置超时时间 链接的解析、构造、合并urlparse方法urlsplit方法urljoin方法urlencode方法parse_qs方法quote方法 Robots 协议Robots 协议的结构解析协议 参考书籍 在上一篇文章:用python写网络爬虫:2.urllib库的基本用…

STM32中freertos任务不能调度的原因解决

本文是项目中的定位问题,如果定位到同样问题,可以按下面方法解决。 问题定位 这行assert代码主要判断系统中最大中断优先级数量是否等于内核中断优先级,实际意思就是要求内核中断优先级为系统最低优先级(freertos中0为最高优先级…

2024/3/17 TCP的进程和线程通信,模拟面试总结

#include<myhead.h> #define SER_PORT 8888//服务器端口号 #define SER_IP "192.168.65.130"//服务器IP //定义向线程体提供参数的结构体 struct BufInfo {int newfd;struct sockaddr_in cin; }; //定义线程体函数 void *deal_cli_msg(void *arg) {//接受传过来…

初次文件包含漏洞

1.文件包含漏洞介绍 1.1.文件包含漏洞解释   文件包含漏洞就是使用函数去包含任意文件的时候&#xff0c;当包含的文件来源过滤不严谨的时候&#xff0c;当存在包含恶意文件后&#xff0c;就可以通过这个恶意的文件来达到相应的目的。 1.2.文件包含漏洞原理    其实原理就…

四、MySQL

MySQL MySQL1.初识网站2.安装MySQL2.1 下载&#xff08;最重要的一点是路径中不能有中文&#xff0c;哪怕是同级目录也不行&#xff09;2.2安装补丁2.3安装2.4创建配置文件2.5初始化 3.启动MySQL4.连接测试4.1 设置密码4.2 查看已有的文件夹&#xff08;数据库&#xff09;4.3 …

Linux怎么查看当前进程?怎么执行退出?怎么查看当前路径?

在Linux系统中&#xff0c;查看当前进程、执行退出和查看当前路径都可以通过命令行来完成。下面是具体的命令和它们的用法&#xff1a; 1. **查看当前进程**&#xff1a; 使用ps命令可以查看当前运行的进程。ps代表“process status”&#xff0c;它可以显示当前用户的进程…

计算机网络——物理层(信道复用技术)

计算机网络——物理层&#xff08;信道复用技术&#xff09; 信道复用技术频分多址与时分多址 频分复用 FDM (Frequency Division Multiplexing)时分复用 TDM (Time Division Multiplexing)统计时分复用 STDM (Statistic TDM)波分复用码分复用 我们今天接着来看信道复用技术&am…

用Excel就可以实现的生产绩效考核评定

从事生产管理数十载&#xff0c;在进行员工日常生产效率和综合考核的管理方面&#xff0c;积累了一些经验和注意事项。今天来和大家分享一下如何用Excel来搞定它吧&#xff01; 首先&#xff0c;Excel是一个强大的工具&#xff0c;可以帮助我们收集、分析和展示员工的生产数据…

掌握Go语言:Go语言中的字典魔法,高效数据检索与应用实例解析(18)

在Go语言中&#xff0c;字典通常指的是map类型&#xff0c;它是一种用于存储键值对的数据结构。字典在Go中非常常见&#xff0c;是一种高效的数据结构&#xff0c;用于快速查找和检索数据。 字典的详细使用方法 创建字典 可以使用make函数来创建字典&#xff0c;并指定键值对…

生成器建造者模式(Builder)——创建型模式

生成器/建造者模式——创建型模式 什么是生成器模式&#xff1f; 生成器模式是一种创建型设计模式&#xff0c; 使你能够分步骤创建复杂对象。 该模式允许你使用相同的创建代码生成不同类型和形式的对象。 提炼两个关键点&#xff1a;Ⅰ.分步骤创建复杂对象。Ⅱ.相同创建代码…

llm综述

1、语言模型进程 1.1、语言模型概述 语言模型从统计语言模型&#xff08;SLM&#xff09;逐步发展为神经语言模型&#xff08;NLM&#xff09;&#xff1b;近年&#xff0c;通过在大规模语料库上对 Transformer 模型进行预训练&#xff0c;预训练语言模型(Pre-training Langu…

Windows程序员用MAC:安装win双系统、wintogo和删除

初级代码游戏的专栏介绍与文章目录-CSDN博客 这是本人用mac的操作记录&#xff0c;型号为MBP2019(intel CPU)。 大部分操作是基于较早的MAC系统&#xff08;大约是2021年年底到2022年年初&#xff09;&#xff0c;提及的“新版”是2023年年初。这篇文章的目的不是让你照着做就能…