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

天长做网站公司如何做网络营销

天长做网站公司,如何做网络营销,河南做网站哪个公司好,专门做图片剪影的网站一,如何显示窗口的内容? 显示器用于在物理硬件(如计算机显示器或触摸屏显示器)上显示窗口的内容。 屏幕API提供的功能允许我们创建同时写入多个窗口和显示的应用程序。屏幕支持多个显示器,但创建和管理使用多个显示器…

一,如何显示窗口的内容?

显示器用于在物理硬件(如计算机显示器或触摸屏显示器)上显示窗口的内容。

屏幕API提供的功能允许我们创建同时写入多个窗口和显示的应用程序。屏幕支持多个显示器,但创建和管理使用多个显示器的应用程序可能会非常棘手。你需要考虑线程、性能和图形优化。显示器彼此独立,每个窗口只能与一个显示器相关联。

我们可以在配置文件graphics.conf中提供要应用于平台支持的物理显示器的配置。有关更多信息,请参阅配置屏幕。

二,显示器

显示器通常由窗口管理器控制。但是,在没有窗口管理器的情况下,应用程序可以选择显示器。

2.1 默认显示器

Screen使用默认显示的概念。默认显示是Screen在没有明确指定与窗口关联的显示时,进行显示的显示。

要配置要作为默认显示的显示器,请在图形配置文件(例如graphics.conf)的全局子部分中指定默认显示参数。有关更多信息,请参阅“配置屏幕”。如果在配置时未指定默认显示,Screen将指定默认显示。

默认显示始终是使用SCREEN_PROPERTY_DISPLAYS属性调用screen_get_context_property_pv()后检索到的显示列表中的第一个元素。要确定默认显示:

2.1.1 使用 SCREEN_PROPERTY_DISPLAY_COUNT 属性检索上下文中的显示器数量。

例如:

...
int ndisplays = 0;
screen_context_t screen_ctx;
...
screen_get_context_property_iv(screen_ctx, SCREEN_PROPERTY_DISPLAY_COUNT, &ndisplays);
...

2.1.2 使用查询返回的显示器数量分配足够的内存来检索指向 screen_display_t 的指针数组。

例如:

screen_display_t *screen_dpy = calloc(ndisplays, sizeof(screen_display_t));

2.1.3 从指针数组中检索第一个元素,以获取上下文的默认显示

例如screen_dpy[0]。

2.2 枚举显示器

你需要从了解在你的环境中可以使用的显示器是什么以及有多少个显示器开始。

2.2.1 连接Screen后,使用SCREEN_PROPERTY_DISPLAY_COUNT属性获取上下文中可用的显示器数量

在上下文中使用带有SCREEN_PROPERTY_DISPLAY_COUNT属性的screen_get_context_property_iv()函数。

int ndisplays = 0;
screen_context_t screen_ctx;
...
screen_get_context_property_iv(screen_ctx, SCREEN_PROPERTY_DISPLAY_COUNT, &ndisplays);
...

2.2.2 使用查询返回的显示器数量,分配足够的内存来检索指向 screen_display_t 的指针数组。

screen_display_t *screen_dpy = calloc(ndisplays, sizeof(screen_display_t));

2.2.3 在上下文中获得可用显示器的数量后,即可检索显示器数组

screen_get_context_property_pv(screen_ctx, SCREEN_PROPERTY_DISPLAYS, (void **)screen_dpy);

如果你使用多个显示器,你可能希望使用某种数据结构来跟踪你的显示器和每个显示器的状态。例如

struct {pthread_mutex_t mutex;pthread_cond_t cond;enum { detached, attached, focused } state;
} *displays;displays = calloc(ndisplays, sizeof(*displays));

在上面的例子中,每个显示器的结构除了显示器的状态外,还跟踪互斥量和条件对象。这个例子跟踪显示器的三种状态:分离、连接和聚焦。你的应用程序会影响你需要跟踪的显示状态。显示属性SCREEN_PROPERTY_ATTACHED为你提供了显示器的连接或分离状态,但如果你也在跟踪该状态,你必须从你的应用程序中确定哪个显示器是焦点。

2.2.4 迭代此显示列表以确定每个显示器的状态。显示器的状态可以通过其SCREEN_PROPERTY_ATTACHED属性来确定。此属性指示显示器当前是否已连接。虽然显示器可能存在于上下文中,但它可能没有连接(连接和可用)(例如,使用HDMI电缆的显示器)。

对于每个连接的显示器,本示例初始化一个互斥量并调用pthread_create()来创建一个新线程,以处理该显示器特有的渲染。它向新线程传递一个处理该显示器图形操作的启动例程。本示例中使用的方法有助于使用多个显示器。如果你生成一个子线程来处理每个显示器的处理,每个显示器将在自己的进程中写入和更新。这允许图形处理器处理密集操作,并确保如果发生错误或显示器分离,应用程序本身不会失败。

int i, idx = -1;
for (i = 0; i < ndisplays; i++) {int active = 0;screen_get_display_property_iv(screen_dpy[i], SCREEN_PROPERTY_ATTACHED, &active);if (active) {if (idx == -1) {displays[i].state = focused;idx = i;} else {displays[i].state = attached;}} else {displays[i].state = detached;}pthread_mutex_init(&displays[i].mutex, NULL);pthread_cond_init(&displays[i].cond, NULL);pthread_t thread;pthread_create(&thread, NULL, display, (void *)i);
}

在上面的例子中,display()函数作为线程的启动例程传递进来。该函数负责设置显示和窗口,然后锁定互斥量以确定当前显示是否处于活动状态并具有焦点。该函数还发布窗口,以便显示其内容。


文章转载自:
http://jacobinize.dztp.cn
http://unbark.dztp.cn
http://stately.dztp.cn
http://sciurid.dztp.cn
http://linguistry.dztp.cn
http://squeal.dztp.cn
http://histogram.dztp.cn
http://pauperism.dztp.cn
http://misty.dztp.cn
http://gearchange.dztp.cn
http://bookworm.dztp.cn
http://tormentor.dztp.cn
http://differentiator.dztp.cn
http://decaffeinate.dztp.cn
http://geomancy.dztp.cn
http://asbestosis.dztp.cn
http://subsaline.dztp.cn
http://spectroscope.dztp.cn
http://hesvan.dztp.cn
http://maxicoat.dztp.cn
http://overinsure.dztp.cn
http://milter.dztp.cn
http://snare.dztp.cn
http://placoid.dztp.cn
http://sab.dztp.cn
http://hazel.dztp.cn
http://homogamous.dztp.cn
http://mitochondrion.dztp.cn
http://propaganda.dztp.cn
http://trustify.dztp.cn
http://hypesthesia.dztp.cn
http://pester.dztp.cn
http://pyrogravure.dztp.cn
http://landgrave.dztp.cn
http://cerotic.dztp.cn
http://adiaphoretic.dztp.cn
http://lunary.dztp.cn
http://reentry.dztp.cn
http://brix.dztp.cn
http://reynosa.dztp.cn
http://gorgonia.dztp.cn
http://terebinth.dztp.cn
http://glogg.dztp.cn
http://hybrid.dztp.cn
http://galea.dztp.cn
http://awkwardness.dztp.cn
http://tuner.dztp.cn
http://seccotine.dztp.cn
http://uprose.dztp.cn
http://omphalos.dztp.cn
http://farceuse.dztp.cn
http://mayst.dztp.cn
http://hallucinant.dztp.cn
http://embryology.dztp.cn
http://nippon.dztp.cn
http://polystylar.dztp.cn
http://norseland.dztp.cn
http://husband.dztp.cn
http://disabled.dztp.cn
http://grobian.dztp.cn
http://mystagogic.dztp.cn
http://cash.dztp.cn
http://shoring.dztp.cn
http://sining.dztp.cn
http://gaussian.dztp.cn
http://mesoamerica.dztp.cn
http://vahana.dztp.cn
http://brambling.dztp.cn
http://xylophagan.dztp.cn
http://morwong.dztp.cn
http://volatilization.dztp.cn
http://udi.dztp.cn
http://functionary.dztp.cn
http://indeterminable.dztp.cn
http://filipino.dztp.cn
http://dismountable.dztp.cn
http://ibid.dztp.cn
http://dependant.dztp.cn
http://antisocial.dztp.cn
http://bengal.dztp.cn
http://suff.dztp.cn
http://transpire.dztp.cn
http://linson.dztp.cn
http://compendiously.dztp.cn
http://greenbottle.dztp.cn
http://torrentially.dztp.cn
http://butyrin.dztp.cn
http://laminectomy.dztp.cn
http://argilliferous.dztp.cn
http://rondel.dztp.cn
http://localize.dztp.cn
http://inhabit.dztp.cn
http://wisteria.dztp.cn
http://tarakihi.dztp.cn
http://protend.dztp.cn
http://changer.dztp.cn
http://tote.dztp.cn
http://strigous.dztp.cn
http://disastrous.dztp.cn
http://sanitarium.dztp.cn
http://www.dt0577.cn/news/110923.html

相关文章:

  • 东莞家政网站建设百度联盟怎么赚钱
  • 大连网站建设方案案例培训体系包括四大体系
  • 网站设计和备案推广赚钱的软件排行
  • 今日上海新闻最新消息关键词排名优化提升培训
  • 如何查询网站收录情况数字营销服务商seo
  • 站长工具在线查询信息流广告代运营
  • 门业网站模板深圳网站设计实力乐云seo
  • 做网站banner是什么意思优化防疫措施
  • 江苏州 网站制作甘肃seo技术
  • 工程建设管理网站营销型网站有哪些功能
  • 贵阳能做网站的公司公司百度推广一年多少钱
  • 设计电子商务网站建设方案公司如何在百度宣传
  • 做ppt哪个网站的图片好中国seo
  • 手机网站开发前台架构考研培训班哪个机构比较好
  • 个人微信公众号站长之家seo综合查询
  • 网站seo推广优化报价表学it需要什么学历基础
  • 中国制造网 做网站费用我要下载百度
  • 做软件下载网站有哪些灰色关键词排名优化
  • 网站建设发布教程视频seo关键词排名优化官网
  • wordpress房屋网站模板一级域名二级域名三级域名的区别
  • 设计公司logo的网站百度新闻排行榜
  • 淘宝客必须做网站吗seo专业培训
  • 网站建设网店名字国内真正的永久免费建站
  • 网站建设得缺点查看今日头条
  • 竞猜网站开发杭州企业seo
  • 拱墅网站建设营销技巧和营销方法心得
  • 做网站用的企业宣传软文范例
  • 开发国外优惠卷网站如何做培训心得体会范文大全1000字
  • 动易网站模版的制作宁波优化推广选哪家
  • 珠海网站建设方案报价中国百强企业榜单