CN105700887A - 一种基于Directx11视口的内容共享系统及方法 - Google Patents

一种基于Directx11视口的内容共享系统及方法 Download PDF

Info

Publication number
CN105700887A
CN105700887A CN201610024553.XA CN201610024553A CN105700887A CN 105700887 A CN105700887 A CN 105700887A CN 201610024553 A CN201610024553 A CN 201610024553A CN 105700887 A CN105700887 A CN 105700887A
Authority
CN
China
Prior art keywords
viewport
shared
data
parameter
texture
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201610024553.XA
Other languages
English (en)
Inventor
王振华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Sai Pu Electronic Science And Technology Co Ltd
Original Assignee
Guangzhou Sai Pu Electronic Science And Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Sai Pu Electronic Science And Technology Co Ltd filed Critical Guangzhou Sai Pu Electronic Science And Technology Co Ltd
Priority to CN201610024553.XA priority Critical patent/CN105700887A/zh
Publication of CN105700887A publication Critical patent/CN105700887A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Image Generation (AREA)

Abstract

本发明公开了一种基于Directx11视口的内容共享系统及方法,该方法通过启动Directx11程序,创建一个共享视口;在上述共享视口内创建一个兼容的共享纹理;在共享视口内创建一个用于在其他视口绘制的共享数据;将共享纹理拷贝到共享数据中;其他视口读取共享数据并进行绘制。通过创建共享视口及其内部的共享数据,由于共享数据为Directx11的内部数据,因此其他视口在使用共享数据时利用了Directx11的3D显卡加速功能,因此画面质量和速度均较GDI+有大幅提升,并且无需重复创建资源,减少资源的消耗,在多视口操作下仍能保证呈现画面的流畅。本发明作为一种基于Directx11视口的内容共享系统及方法可广泛应用于图像处理领域。

Description

一种基于Directx11视口的内容共享系统及方法
技术领域
本发明涉及图像处理领域,尤其是一种基于Directx11视口的内容共享系统及方法。
背景技术
在IT行业中应用中时常需要将程序模块区域的内容在其他区域显示,类似部分内容在同一个程序中显示两次。而目前的GDI+(GraphicsDeviceInterface,图形设备接口)或者windows的draw的方式都需要创建两次这样的内容才能实现,因此消耗的资源多,处理速度慢,因此这样的实现方式性能是非常低效的。
发明内容
为了解决上述技术问题,本发明的目的是:提供一种基于Directx11视口实现减少资源的消耗、多视口操作下画面流畅的内容共享系统。
为了解决上述技术问题,本发明的另一目的是:提供一种基于Directx11视口实现减少资源的消耗、多视口操作下画面流畅的内容共享方法。
本发明所采用的技术方案是:一种基于Directx11视口的内容共享系统,包括有共享视口创建模块,用于在启动Directx11程序后创建共享视口;
共享纹理创建模块,用于在共享视口内创建共享纹理;
共享数据区创建模块,用于在共享视口内创建用于在其他视口绘制的共享数据区;
共享数据拷贝模块,用于将共享纹理的数据拷贝到共享数据区中;
设置于其他视口的共享数据读取模块,用于读取共享数据区内容;
设置于其他视口的绘制模块,用于将共享数据读取模块读取的数据内容绘制并在视口呈现。
进一步,所述共享纹理创建模块创建的共享纹理包括有Format参数、BindFlags参数和Usage参数,
所述Format参数设置为DXGI_FORMAT_B8G8R8A8_UNORM,
所述BindFlags参数设置为D3D11_BIND_SHADER_RESOURCE或D3D11_BIND_RENDER_TARGET,
所述Usage参数设置为D3D11_USAGE_DEFAULT。
本发明所采用的另一技术方案是:一种基于Directx11视口的内容共享方法,包括有以下步骤:
A、启动Directx11程序,创建一个共享视口;
B、在上述共享视口内创建一个兼容的共享纹理ID3D11Texture2D;
C、在共享视口内创建一个用于在其他视口绘制的共享数据ID2D1Bitmap;
D、将共享纹理ID3D11Texture2D拷贝到共享数据ID2D1Bitmap中;
E、其他视口读取共享数据ID2D1Bitmap并进行绘制。
进一步,所述步骤A中的共享视口采用Directx11中API的RSSetViewports函数创建。
进一步,所述步骤B中共享纹理ID3D11Texture2D中包括有Format参数、BindFlags参数和Usage参数,
所述Format参数设置为DXGI_FORMAT_B8G8R8A8_UNORM,
所述BindFlags参数设置为D3D11_BIND_SHADER_RESOURCE或D3D11_BIND_RENDER_TARGET,
所述Usage参数设置为D3D11_USAGE_DEFAULT。
本发明的有益效果是:本发明系统通过创建共享视口及其内部的共享数据,由于共享数据为Directx11的内部数据,因此其他视口在使用共享数据时利用了Directx11的3D显卡加速功能,因此画面质量和速度均较GDI+有大幅提升,并且无需重复创建资源,减少资源的消耗,在多视口操作下仍能保证呈现画面的流畅。
本发明的另一有益效果是:本发明方法通过创建共享视口及其内部的共享数据,由于共享数据为Directx11的内部数据,因此其他视口在使用共享数据时利用了Directx11的3D显卡加速功能,因此画面质量和速度均较GDI+有大幅提升,并且无需重复创建资源,减少资源的消耗,在多视口操作下仍能保证呈现画面的流畅。
附图说明
图1为本发明系统结构示意图;
图2为本发明方法步骤流程图。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步说明:
参照图1,一种基于Directx11视口的内容共享系统,包括有共享视口创建模块,用于在启动Directx11程序后创建共享视口;
共享纹理创建模块,用于在共享视口内创建共享纹理;
共享数据区创建模块,用于在共享视口内创建用于在其他视口绘制的共享数据区;
共享数据拷贝模块,用于将共享纹理的数据拷贝到共享数据区中;
设置于其他视口的共享数据读取模块,用于读取共享数据区内容;
设置于其他视口的绘制模块,用于将共享数据读取模块读取的数据内容绘制并在视口呈现。
进一步作为优选的实施方式,所述共享纹理创建模块创建的共享纹理包括有Format参数、BindFlags参数和Usage参数,
所述Format参数设置为DXGI_FORMAT_B8G8R8A8_UNORM,
所述BindFlags参数设置为D3D11_BIND_SHADER_RESOURCE或D3D11_BIND_RENDER_TARGET,
所述Usage参数设置为D3D11_USAGE_DEFAULT。
参照图2,一种基于Directx11视口的内容共享方法,包括有以下步骤:
A、启动Directx11程序,创建一个共享视口;
B、在上述共享视口内创建一个兼容的共享纹理ID3D11Texture2D;
C、在共享视口内创建一个用于在其他视口绘制的共享数据ID2D1Bitmap;
D、将共享纹理ID3D11Texture2D拷贝到共享数据ID2D1Bitmap中;
E、其他视口读取共享数据ID2D1Bitmap并进行绘制。
进一步作为优选的实施方式,所述步骤A中的共享视口采用Directx11中API的RSSetViewports函数创建。
进一步作为优选的实施方式,所述步骤B中共享纹理ID3D11Texture2D中包括有Format参数、BindFlags参数和Usage参数。
进一步作为优选的实施方式,所述步骤B中在共享视口内利用CreateTexture2D函数创建共享纹理ID3D11Texture2D,该共享纹理ID3D11Texture2D的参数设置如下:
所述Format参数设置为DXGI_FORMAT_B8G8R8A8_UNORM,为一个4字节32位符整数格式,支持8位为每个颜色通道和8位alpha;
所述BindFlags参数设置为D3D11_BIND_SHADER_RESOURCE或D3D11_BIND_RENDER_TARGET;
其中:(1)D3D11_BIND_SHADER_RESOURCE意义为将缓冲区或纹理绑定到一个着色器阶段;使用D3D11_MAP_WRITE_NO_OVERWRITE标志时,不能使用此标志;(2)D3D11_BIND_RENDER_TARGET意义为将纹理作为呈现目标绑定混合输出阶段。
所述Usage参数设置为D3D11_USAGE_DEFAULT,含义为GPU可对资源进行读、写,而CPU不能读、写。
经过上述参数设置,该共享纹理ID3D11Texture2D可被其他视口直接绘制,实现多视口共享的效果。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可以作出种种的等同变换或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

Claims (5)

1.一种基于Directx11视口的内容共享系统,其特征在于:包括有共享视口创建模块,用于在启动Directx11程序后创建共享视口;
共享纹理创建模块,用于在共享视口内创建共享纹理;
共享数据区创建模块,用于在共享视口内创建用于在其他视口绘制的共享数据区;
共享数据拷贝模块,用于将共享纹理的数据拷贝到共享数据区中;
设置于其他视口的共享数据读取模块,用于读取共享数据区内容;
设置于其他视口的绘制模块,用于将共享数据读取模块读取的数据内容绘制并在视口呈现。
2.根据权利要求1所述的一种基于Directx11视口的内容共享系统,其特征在于:所述共享纹理创建模块创建的共享纹理包括有Format参数、BindFlags参数和Usage参数,
所述Format参数设置为DXGI_FORMAT_B8G8R8A8_UNORM,
所述BindFlags参数设置为D3D11_BIND_SHADER_RESOURCE或D3D11_BIND_RENDER_TARGET,
所述Usage参数设置为D3D11_USAGE_DEFAULT。
3.一种基于Directx11视口的内容共享方法,其特征在于:包括有以下步骤:
A、启动Directx11程序,创建一个共享视口;
B、在上述共享视口内创建一个兼容的共享纹理ID3D11Texture2D;
C、在共享视口内创建一个用于在其他视口绘制的共享数据ID2D1Bitmap;
D、将共享纹理ID3D11Texture2D拷贝到共享数据ID2D1Bitmap中;
E、其他视口读取共享数据ID2D1Bitmap并进行绘制。
4.根据权利要求3所述的一种基于Directx11视口的内容共享方法,其特征在于:所述步骤A中的共享视口采用Directx11中API的RSSetViewports函数创建。
5.根据权利要求4所述的一种基于Directx11视口的内容共享方法,其特征在于:所述步骤B中共享纹理ID3D11Texture2D中包括有Format参数、BindFlags参数和Usage参数,
所述Format参数设置为DXGI_FORMAT_B8G8R8A8_UNORM,
所述BindFlags参数设置为D3D11_BIND_SHADER_RESOURCE或D3D11_BIND_RENDER_TARGET,
所述Usage参数设置为D3D11_USAGE_DEFAULT。
CN201610024553.XA 2016-01-13 2016-01-13 一种基于Directx11视口的内容共享系统及方法 Pending CN105700887A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610024553.XA CN105700887A (zh) 2016-01-13 2016-01-13 一种基于Directx11视口的内容共享系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610024553.XA CN105700887A (zh) 2016-01-13 2016-01-13 一种基于Directx11视口的内容共享系统及方法

Publications (1)

Publication Number Publication Date
CN105700887A true CN105700887A (zh) 2016-06-22

Family

ID=56226436

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610024553.XA Pending CN105700887A (zh) 2016-01-13 2016-01-13 一种基于Directx11视口的内容共享系统及方法

Country Status (1)

Country Link
CN (1) CN105700887A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106709965A (zh) * 2016-12-12 2017-05-24 广东威创视讯科技股份有限公司 一种基于共享表面的文本显示方法及装置
CN107180136A (zh) * 2017-06-02 2017-09-19 王征 一种基于内墙对象记录器的3d房间纹理加载的系统和方法
CN110321193A (zh) * 2019-05-05 2019-10-11 四川盛趣时代网络科技有限公司 一种基于Direct3D共享纹理的交互方法及系统
CN110489083A (zh) * 2018-05-14 2019-11-22 武汉斗鱼网络科技有限公司 一种纹理共享的方法、计算机设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101882077A (zh) * 2010-05-19 2010-11-10 广东威创视讯科技股份有限公司 高效率绘制与渲染基本图形的方法及装置
CN102800122A (zh) * 2012-06-20 2012-11-28 广东威创视讯科技股份有限公司 基于Direct3D技术的图像处理方法及其装置
US8497861B2 (en) * 2008-05-30 2013-07-30 Siemens Aktiengesellschaft Method for direct volumetric rendering of deformable bricked volumes

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8497861B2 (en) * 2008-05-30 2013-07-30 Siemens Aktiengesellschaft Method for direct volumetric rendering of deformable bricked volumes
CN101882077A (zh) * 2010-05-19 2010-11-10 广东威创视讯科技股份有限公司 高效率绘制与渲染基本图形的方法及装置
CN102800122A (zh) * 2012-06-20 2012-11-28 广东威创视讯科技股份有限公司 基于Direct3D技术的图像处理方法及其装置

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
PIZI0475: "DXGI的使用 --Direct2D 和 Direct3D 互操作性概述", 《HTTPS://BLOG.CSDN.NET/PIZI0475/ARTICLE/DETAILS/7797469?LOCATIONNUM=9&FPS=1》 *
ZDD: "用DirectX实现多视图渲染", 《HTTPS://WWW.CNBLOGS.COM/GRAPHICS/ARCHIVE/2011/03/26/1994366.HTML》 *
梦幻DUO: "DirectX11 Direct3D初始化", 《HTTPS://BLOG.CSDN.NET/SINAT_24229853/ARTICLE/DETAILS/48769943》 *
碎片球球: "Bitmap & Texture2D 互转方法搜集", 《HTTPS://BLOG.CSDN.NET/XUEHUIC/ARTICLE/DETAILS/7386339》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106709965A (zh) * 2016-12-12 2017-05-24 广东威创视讯科技股份有限公司 一种基于共享表面的文本显示方法及装置
CN106709965B (zh) * 2016-12-12 2020-08-11 广东威创视讯科技股份有限公司 一种基于共享表面的文本显示方法及装置
CN107180136A (zh) * 2017-06-02 2017-09-19 王征 一种基于内墙对象记录器的3d房间纹理加载的系统和方法
CN110489083A (zh) * 2018-05-14 2019-11-22 武汉斗鱼网络科技有限公司 一种纹理共享的方法、计算机设备和存储介质
CN110489083B (zh) * 2018-05-14 2022-06-21 武汉斗鱼网络科技有限公司 一种纹理共享的方法、计算机设备和存储介质
CN110321193A (zh) * 2019-05-05 2019-10-11 四川盛趣时代网络科技有限公司 一种基于Direct3D共享纹理的交互方法及系统

Similar Documents

Publication Publication Date Title
US8199164B2 (en) Advanced anti-aliasing with multiple graphics processing units
CN105302580B (zh) 一种通过gpu纹理共享实现快速获取游戏图像的方法和系统
KR101213872B1 (ko) 하드웨어 가속 블렌드 모드
AU2004287140B2 (en) System and method for a unified composition engine in a graphics processing system
TWI281639B (en) Method for managing state variables for rendering primitives, apparatus for rendering a scene including primitives, and machine readable medium
CN105700887A (zh) 一种基于Directx11视口的内容共享系统及方法
US20030122836A1 (en) Automatic memory management for zone rendering
US8760459B2 (en) Display data management techniques
KR20140060307A (ko) 콘텐트의 타일-기반 렌더링을 위한 방법 및 콘텐트를 렌더링하기 위한 시스템
CN112740278B (zh) 用于图形处理的方法及设备
CN104679555B (zh) 一种通过第三方软件实现ppt嵌入的方法和系统
TWI527445B (zh) 於x視窗系統上顯示硬體加速之視頻的技術
WO2023051590A1 (zh) 一种渲染格式选择方法及其相关设备
JP7352032B2 (ja) 動画生成方法、装置、電子デバイス及びコンピュータ読取可能記憶媒体
US11094032B2 (en) Out of order wave slot release for a terminated wave
CN104424661A (zh) 三维对象显示方法和装置
US20190156528A1 (en) Pencil ink render using high priority queues
US8223123B1 (en) Hardware accelerated caret rendering
US11373267B2 (en) Methods and apparatus for reducing the transfer of rendering information
WO2023225771A1 (en) Concurrent frame buffer composition scheme
CN105700885A (zh) 一种基于多视口模拟多窗口系统和方法
CN114706543A (zh) 接口输入数据的显示方法和设备及计算机可读介质
KR20230160247A (ko) 세일리언시 기반 프레임 컬러 향상을 위한 방법들 및 장치
TW202324290A (zh) 常數資料儲存裝置
CN116490917A (zh) 用于覆盖合成的平面规划

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20160622