设置
考虑使用 (直接库的托管包装器)呈现位图并将其保存为PNG的给定划痕程序:
namespace ConsoleApplication5
{
using System;
using System.Diagnostics;
using System.IO;
using SharpDX;
using SharpDX.Direct2D1;
using SharpDX.DirectWrite;
using SharpDX.DXGI;
using SharpDX.IO;
using SharpDX.WIC;
using
我刚接触DirectX,正在尝试使用SharpDX通过桌面复制应用程序接口来捕获屏幕截图。
我想知道是否有任何简单的方法来创建我可以在CPU中使用的位图(即保存到文件中,等等)。
我使用下面的代码来获取桌面屏幕截图:
var factory = new SharpDX.DXGI.Factory1();
var adapter = factory.Adapters1[0];
var output = adapter.Outputs[0];
var device = new SharpDX.Direct3D11.Device(SharpDX.Direct3D.DriverType.Hardwar
是否可以将使用默认.net画法(System.Drawing方法)绘制的东西绘制到SharpDX Texture2D对象,以便将其显示为纹理?最好使用SharpDX工具包。
如果是,怎么做?
编辑:到目前为止我正在尝试的内容:
Bitmap b = new Bitmap(100,100);
MemoryStream ms = new MemoryStream();
b.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
Texture2D tex = Texture2D.Load(g.device, ms); // crashing he
我正在尝试一些sharpDX例子,我得到了这个“未注册的类”。我从错误中看出这是一件好事,但我不明白为什么?正如在sharpDX页面中提到的,我已经安装了DX运行时,并且我使用的是windows7 64。不过这是一个win32应用程序。
错误
An unhandled exception of type 'SharpDX.SharpDXException' occurred in SharpDX.dll
Additional information: HRESULT: [0x80040154], Module: [SharpDX.DirectInput], ApiCode:
我正在学习DirectX和SharpDX(使用ver.2.6.2)。
现在,我尝试使用Texture2D.FromMemory()方法从字节数组创建纹理。我的示例代码如下所示。
using System;
using System.Diagnostics;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using SharpDX;
using SharpDX.D3DCompiler;
using SharpDX.Dir
有人能告诉我为什么ClearType在下面的简单SharpDX示例中获取背景的透明度吗?以及如何阻止它这样做。
它将两行实心黑色文本渲染成半透明位图。第一行用灰度表示,第二行用ClearType呈现。
编辑:有人认为问题在于表面是预先乘以的.但这并不能解释两种Grayscale/ClearType渲染之间的区别。
结果(win7):
public static void Main()
{
var pixelFormat = SharpDX.WIC.PixelFormat.Format32bppPBGRA;
using (var wicFactory = new Im
我想在一个朋友的电脑上测试我的应用程序,以检查我的工作是否在别人的机器上运行。(我是否包含了所有的库?等)
但是,当我加载*.dds纹理时,我的应用程序崩溃。我在场景的2D背景中使用它们。下面是我用来加载DDS纹理并将其转换为位图的代码:
using (SharpDX.WIC.BitmapDecoder bitmapDecoder = new SharpDX.WIC.BitmapDecoder(ImagingFactory, new MemoryStream(iconInfo.Data, false), SharpDX.WIC.DecodeOptions.CacheOnDemand))
{
我在互联网上四处寻找,试图找到允许我从常规字体(而不是sprite字体)绘制文本的代码,但只找到了一点帮助都没有的代码片段。
有没有人有一个完整的源文件,可以让我使用SharpDX和D3D11/DirectWrite轻松绘制文本?我想做一个透明的覆盖窗口,显示一些信息(如Fraps)。我找到了一个这样做的教程,但它使用的是sprite字体,我希望它在大小和字体方面是可定制的。
这就是我到目前为止所知道的:
using System;
using SharpDX;
using SharpDX.Direct3D11;
using SharpDX.Windows;
using SharpDX.Dir
下面的代码成功地截取了附加到我的Windows 10笔记本电脑上的监视器的屏幕截图,只要监视器没有被“翻转”。当监视器被翻转到除“景观”之外的任何方向时,捕获的图像都是黑色像素(r,g,b,a= 0,0,0,255)
我如何修改下面的代码,以便它也能与翻转的监视器一起工作?
目标框架是:
Net 4.8
参考的软件包是:
4.2.0SharpDX.Direct2D1 4.2.0SharpDX.Direct3D11 4.2.0SharpDX.DXGI 4.2.0SharpDX.DXGI SharpDX 4.2.0
using System;
using System.IO;
using Syst
为了学习的目的,我试图制作一个非常简单的游戏,但是我正在与SharpDX做斗争。基本上,我想要实现的是:获取几幅位图图像,并在某个x坐标的窗口中显示它们。在此之后,我将清除窗口,再次显示这些图像,但在不同的x-y坐标(基本上是一个非常基本的游戏循环,这意味着图像将被重新显示多次每秒)。
我有这样的代码:
using SharpDX;
using SharpDX.Toolkit;
internal sealed class MyGame : Game
{
private readonly GraphicsDeviceManager _graphicsDeviceManager;
我正在使用SharpDX渲染一个点云,使用以下代码: PointsModel = new PointGeometryModel3D();
PointsModel.Geometry = new PointGeometry3D();
//create positions
PointsModel.Geometry.Positions = new Vector3Collection();
PointsModel.Geometry.Positions.AddRange(
new SharpDX.Vector3[]
{
ne
因此,我一直在使用SharpDX,一个用Direct3D11和Direct2D编程的C# DirectX包装器,在我的程序中绘制到RenderForm窗口。但是,SwapChain.Present信息指出我应该使用SwapChain1.Present1,并且我不知道如何更改代码以使用SwapChain1。Device甚至Device1中的CreateWithSwapChain方法只适用于普通的SwapChain,我不知道如何简单地设置它。 这些是正在使用的名称空间。 using SharpDX.Direct2D1;
using SharpDX.Direct3D;
using SharpDX.
我正在寻找一种用Direct2D1 BitmapRenderTarget创建图像的简单方法。
我确实有一个像这样的BitmapRenderTarget:
var bitmapRenderTarget = new SharpDX.Direct2D1.BitmapRenderTarget(m_d2dRenderTarget, CompatibleRenderTargetOptions.None, new SharpDX.Direct2D1.PixelFormat(Format.B8G8R8A8_UNorm, AlphaMode.Premultiplied));
我可以通过使用Direct2D1访问
我最近安装了SharpDX,它是Visual扩展来创建ShardDX解决方案。我假设这个扩展使用的模板会添加dll依赖项和使用语句等等。但是解决方案从未创建过,当我尝试:
找不到SharpDX安装目录。期望SharpDXSdkDir环境变量
我搜索了它,唯一的结果是Visual扩展代码本身的一部分,在一个git存储库中:
正在抛出错误的Visual向导的确切行:
// Check that SharpDX is correctly installed
if (string.IsNullOrEmpty(Environment.GetEnvironmentVariable(