小编Pix*_*ord的帖子

了解 DirectX11 和 Directx11.1 示例 msdn 代码

在为 win32 初始化 DirectX 11.1 时,我遵循了 MSDN 示例代码。代码声明了两个 Direct3d 设备:

   ID3D11Device*           g_pd3dDevice = nullptr;
   ID3D11Device1*          g_pd3dDevice1 = nullptr;
Run Code Online (Sandbox Code Playgroud)

然后获取设备,如:

D3D_FEATURE_LEVEL featureLevels[] =
    {
        D3D_FEATURE_LEVEL_11_1,
        D3D_FEATURE_LEVEL_11_0,
        D3D_FEATURE_LEVEL_10_1,
        D3D_FEATURE_LEVEL_10_0,
     };

UINT numFeatureLevels = ARRAYSIZE( featureLevels );


hr = D3D11CreateDevice( 
                        nullptr, 
                        D3D_DRIVER_TYPE_HARDWARE, 
                        nullptr, 
                        createDeviceFlags, 
                        featureLevels, 
                        numFeatureLevels,
                        D3D11_SDK_VERSION, 
                        &g_pd3dDevice, 
                        &g_featureLevel, 
                       &g_pImmediateContext );

if ( hr == E_INVALIDARG )
{

    hr = D3D11CreateDevice( 
                            nullptr, 
                            D3D_DRIVER_TYPE_HARDWARE, 
                            nullptr, 
                            createDeviceFlags, 
                            &featureLevels[1], 
                            numFeatureLevels - 1,
                            D3D11_SDK_VERSION, 
                            &g_pd3dDevice, 
                            &g_featureLevel, 
                            &g_pImmediateContext );
}

if( FAILED( hr ) )
    return hr;
Run Code Online (Sandbox Code Playgroud)

然后我们获取DXGIDevice: …

c++ directx-11

5
推荐指数
1
解决办法
2404
查看次数

如何在d3中左键单击禁用平移

在D3中,平移可以在(向左或向右键单击)+拖动中工作.但是,在我的情况下,我想保留(左键单击+拖动)其他操作,而(右键单击+拖动)进行平移.

如何在左键单击时禁用平移?

谢谢.

javascript d3.js

5
推荐指数
1
解决办法
280
查看次数

如何使用 moment.js 初始化 d3.scale.utc()

我的服务器端模型以 UTC 格式保存日期/时间。在我的前端,我使用 moment.js 使用服务器端数据创建时间对象。

但是,我使用 d3 来绘制数据,我不太确定如何d3.scale.utc()使用我的 moment 对象进行初始化。我需要以 UTC 时间呈现轴刻度。

此前,d3.scale.utc().domain(starDate, endDate)正在那里startDateendDate是原生的JavaScript日期对象。

但是现在我已经重构了代码以使用 moment.js 来处理 UTC 时间并简化了一些日期和时间操作功能,我正面临这个绘图问题。

utc d3.js momentjs

3
推荐指数
1
解决办法
2757
查看次数

Code first Entity Framework model in PHP

I am recently working in a ASP.Net MVC project where we use code first technique to create all the database table. I really liked the idea, where you don't need to touch the database and create the model classes which are automatically mapped to the database by the EF layer.

我打算使用PHP启动一个业余项目,并与Laravel一起玩(我是PHP的新手)。我想知道PHP中是否有任何等效的框架支持EF 4.1等代码优先模式?

我正在研究一些Laravel教程,看来ORM(雄辩)与.net中EF 4.1的工作方式并不完全相同。在我看来,您仍然需要在数据库中创建表,然后创建一个模型来映射数据库。我想念什么吗?

谢谢。

php model-view-controller entity-framework laravel eloquent

3
推荐指数
1
解决办法
4506
查看次数

如何在d3.js时间刻度中指定tickValues?

我使用的是 d3,在我的图表中我有一个 UTC 格式的时间刻度。

xScale  = d3.time.scale.utc().range([0,  chartWidth]);
Run Code Online (Sandbox Code Playgroud)

我需要动态指定刻度并动态更改域以避免刻度标签混乱。

我根据域计算刻度并将刻度设置为最接近的 5 倍数。但是,我注意到一个问题,有时在更改域时刻度位置不一致。见下图:

在此输入图像描述

在一些论坛中,我发现可以通过函数设置刻度值tickValues(d3.range(starting value, end value, interval))请参阅 mbostock 的这篇文章

现在我不确定——我怎样才能在我的时间尺度上做同样的事情?如果我想计算我自己的 xAxis 刻度值(使用 UTC 时间刻度),我该怎么做?

谢谢。

javascript d3.js

2
推荐指数
1
解决办法
3007
查看次数

svg:如何绘制将在矩形区域之外裁剪的图形元素

我正在尝试使用 d3.js 和 svg 渲染甘特图。该图表有两部分,一部分(迷你图表)显示完整的甘特图。其他(主图表)仅显示部分图表。

我在迷你图表中有一个视图窗口,我可以将其拖动到迷你图表上。现在主图表应该只渲染视图窗口内的部分(主图表作为迷你图表的缩放版本)。

现在我需要在主图表中呈现由“矩形”边框的数据。如何裁剪主图表区域之外的元素?

添加另一个 svg 作为主 svg 的内部可能是一个解决方案。还有其他方法吗?

谢谢。

javascript svg d3.js

1
推荐指数
1
解决办法
1058
查看次数

在DirectX代码中正确使用ComPtr

我正在编写基于DirectX 11的引擎.所有DirectX Com对象都包装在Microsoft :: WRL :: ComPtr中.但不幸的是,当我在关机时调用ID3D11Debug :: ReportLiveDeviceObjects时,它报告的多于1个对象的引用计数非零.

我很困惑,哪些代码实际上增加了那些引用计数,防止引用最后为零.举个例子,我在我的代码中提供了ID3D11ShaderResourceView的这个示例用法:

ID3D11ShaderResourceView在我的渲染目标类中声明为成员,

Microsoft::WRL::ComPtr<ID3D11ShaderResourceView> m_pShaderResourceView
Run Code Online (Sandbox Code Playgroud)

它在构造函数中初始化为nullptr:

m_pShaderResourceView(wwNULLPTR)
Run Code Online (Sandbox Code Playgroud)

界面创建如下:

device->CreateShaderResourceView(m_pDXTexture.Get(), &shaderResourceDesc, m_pShaderResourceView.ReleaseAndGetAddressOf()); 
Run Code Online (Sandbox Code Playgroud)

该接口用于GenerateMips函数:

deviceContext->GenerateMips(m_pShaderResourceView.Get());
Run Code Online (Sandbox Code Playgroud)

接口有一个getter函数:

ID3D11ShaderResourceView* GetShaderResourceView() 
{ 
     return m_pShaderResourceView.Get(); 
}
Run Code Online (Sandbox Code Playgroud)

最后在析构函数中重置了接口:

m_pShaderResourceView.Reset();
Run Code Online (Sandbox Code Playgroud)

最后,我在实时对象摘要中获得至少8个引用.

我的问题是:

我的代码的哪一部分实际上增加了引用计数?为什么调用Reset不会使引用为零?可能我错过了什么?

谢谢.

com directx-11

0
推荐指数
1
解决办法
1069
查看次数