问题列表 - 第41335页

Direct3D:从IDirect3DSurface9(默认池)获取系统内存位图的有效方法?

我有IDirect3DSurface9,默认池,YUV格式.我怎样才能有效地从中获取位图位?目前我:

    创建渲染目标:
    device->CreateRenderTarget(surf_desc.Width, surf_desc.Height, D3DFMT_A8R8G8B8, D3DMULTISAMPLE_NONE, 0, TRUE, &render_target, NULL)
    将YUV转换为RGB32 :(
    device->StretchRect(videomem_surf, NULL, render_target_, NULL, D3DTEXF_NONE)
    完整的矩形,无拉伸)
    在系统内存中创建普通的屏幕外表面
    device->CreateOffscreenPlainSurface(surf_desc.Width, surf_desc.Height, D3DFMT_A8R8G8B8, D3DPOOL_SYSTEMMEM, &sysmem_offscreen_surf, NULL)
    将数据从视频mem复制到sysmem:
    device->GetRenderTargetData(render_target, sysmem_offscreen_surface)
    来自屏幕外表面的GetDC,创建兼容的DC和兼容位图,BitBlt从屏幕外的sufrace DC到兼容的DC,并通过GetDIBits()将位图位复制到我的缓冲区

这看起来有点开销,因为有很多复制:从原始表面到渲染目标,然后到屏幕外表面,再到兼容位图,最后到我的缓冲区.如何改进?

谢谢

directx direct3d direct3d9 rendertarget

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

正确初始化成员引用

class Temp {
    public : 
        Temp(X& x): x_(x) {}
        Temp(X& x, Y& y) : x_(x), y_(y) {}
        ...
    private:
        X& x_;
        Y& y_;
}
Run Code Online (Sandbox Code Playgroud)

我得到了错误,因为如果Temp(X& x): x_(x)引用y_没有初始化.正确编写这样一个类的常见做法是什么?

c++ constructor

11
推荐指数
3
解决办法
9113
查看次数

win32上的python:如何获得绝对时间/ CPU周期数

我有一个python脚本调用基于USB的数据采集C#dotnet可执行文件.主要的python脚本做了许多其他的事情,例如它控制步进电机.我们想检查各种操作的相对时间,为此目的,dotnet exe生成一个带有来自C#Stopwatch.GetTimestamp()的时间戳的日志,据我所知,它产生与调用win32 API QueryPerformanceCounter()相同的数字.

现在我想从python脚本中获得类似的数字.time.clock()返回这样的值,不幸的是它将第一次调用时获得的值减去time.clock().我怎么能绕过这个?从一些现有的python模块调用QueryPerformanceCounter()是否容易,或者我是否必须在C中编写自己的python扩展?

我忘了提及,Tim Golden的python WMI模块做到了这一点:wmi.WMI().Win32_PerfRawData_PerfOS_System()[0] .Timestamp_PerfTime,但它太慢了,开销大约48ms.我需要一些<= 1ms的开销.time.clock()似乎足够快,就像c#Stopwatch.GetTimestamp()一样.

TIA,Radim

python api winapi performancecounter

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

在使用sql脚本添加外键之前检查外键

我有一个SQL脚本,它将一个外键添加到表中,如下所示.

ALTER TABLE [security].[Pages] WITH NOCHECK
ADD CONSTRAINT [FK_Pages_PageClasses] FOREIGN KEY ([PageClassId]) REFERENCES [security].[PageClasses]([PageClassId]) ON DELETE NO ACTION ON UPDATE NO ACTION;
Run Code Online (Sandbox Code Playgroud)

有时表已有此外键,因此从Management Studio运行时会显示错误.是否可以在应用密钥之前添加查询以检查密钥是否存在?有一个更好的方法吗?这必须适用于MS SQL 2005和2008.

sql-server sql-server-2005 sql-server-2008

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

使用Entity-Framework更新异常?

嗨,

我在我的ASP.NET MVC网站上使用EntityFramework但是在更新时遇到了一些问题.

这是我的更新代码的样子:

using (BissEntities context = new BissEntities())
    {

      if (adCategoryFilter.Id < 1)
        context.AddToAdCategoryFilter(adCategoryFilter);
      else
        context.Refresh(System.Data.Objects.RefreshMode.ClientWins, adCategoryFilter);

      if (context.SaveChanges() > 0)
        return true;
    }
    return false;
Run Code Online (Sandbox Code Playgroud)

执行context.Refresh时,我得到以下异常:

要刷新的对象集合中索引0处的元素具有null EntityKey属性值,或者未附加到此ObjectStateManager.

Stacktrace :    at System.Data.Objects.ObjectContext.RefreshCheck(Dictionary`2 entities, Object entity, EntityKey key)
   at System.Data.Objects.ObjectContext.AddRefreshKey(Object entityLike, Dictionary`2 entities, Dictionary`2 currentKeys)
   at System.Data.Objects.ObjectContext.RefreshEntities(RefreshMode refreshMode, IEnumerable collection)
   at System.Data.Objects.ObjectContext.Refresh(RefreshMode refreshMode, Object entity)
   at Biss.Models.FilterModel.UpdateCategoryFilter(AdCategoryFilter adCategoryFilter) in C:\Users\Snowman\Documents\Visual Studio 2010\Projects\Biss\Biss\Models\FilterModel.cs:line 86 
Run Code Online (Sandbox Code Playgroud)

这不是我第一次遇到这个问题.首先,我认为它可能与数据库中的关系有关,但在从受影响的表中删除之后,仍然存在相同的异常.

adCategoryFilter来自哪里?

adCategoryFilter是instansiated(新),然后填充ViewObject(来自网站)的数据.它确实具有所需的数据,如过滤器ID(将过滤器映射到db中的正确行).

请求解释为什么我会遇到这个问题以及如何解决它.

最好的祝福

c# asp.net-mvc entity-framework .net-4.0

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

我应该使用接口来强制执行泛型吗?

如果我有以下通用接口:

    public interface IValidator<T>
    {
        Boolean IsValid(T entity_);
    }
Run Code Online (Sandbox Code Playgroud)

我可以用以下方式使用它吗?这是针对面向对象编程指南吗?

    public PathValidator : IValidator<String>
    {
    }
Run Code Online (Sandbox Code Playgroud)

.net c# generics interface

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

在"选择"/下拉HTML列表中手动输入值?

在Windows窗体应用程序中,下拉选择器列表还为用户提供了在同一字段中键入备用值的选项(假设开发人员已在控件上启用此选项.)

如何在HTML中实现这一目标?看起来好像只能从列表中选择值.

如果使用直接HTML无法做到这一点,有没有办法用Javascript做到这一点?

html javascript select drop-down-menu

33
推荐指数
4
解决办法
11万
查看次数

Linq,在匿名类型中使用"变量"

我正在努力完成这样的事情,

var data = from p in db.Projects
                   select new
                   {
                       Cost = p.CostReports.FirstOrDefault().Charged,
                       Tax = Cost * 0.25
                   };
Run Code Online (Sandbox Code Playgroud)

换句话说,我想使用Cost作为变量.可能吗?如果是这样,怎么样?

我的代码只是一个例子,我正在研究的项目有点复杂.

编辑:

我希望这是我想要做的更好的例子,

var data = (from p in db.Projects
                    select new
                    {
                        Name = p.ProjectName,
                        Customer = p.CustomerID,
                        Cost = p.Cost
                    }).GroupBy(p => p.Customer)
                   .Select(g => new
                   {
                       Something = g.Where(p => p.Customer == g.Key).Sum(p => p.Cost),
                       SomethingElse = Something * 0.25
                   });
Run Code Online (Sandbox Code Playgroud)

c# linq

9
推荐指数
2
解决办法
2069
查看次数

Ant Zip 提取的父目录

我有几个 zip 文件需要在 Ant 目标中解压缩。所有 zip 文件都在同一目录中,并且具有相同的内部目录和文件结构。

因此,我使用以下代码段来解压缩目录中的所有 zip 文件,但每个 zip 文件的根目录都不包含父文件夹,因此每个后续 zip 文件都被解压缩并覆盖之前的文件。

<unzip dest="C:/Program Files/Samsung/Samsung TV Apps SDK/Apps">            
    <fileset dir=".">
        <include name="**/*.zip"/>
    </fileset>
</unzip>
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来解压缩一组文件,并根据 zip 文件名创建一个目录来解压缩它们?

因此,如果 zip 文件是:

1.zip
2.zip
3.zip
Run Code Online (Sandbox Code Playgroud)

然后每个的内容将被提取到:

1/
2/
3/
Run Code Online (Sandbox Code Playgroud)

谢谢

ant

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

safe_ptr实现

我正在尝试实现一个安全版本的std :: shared_ptr,称为"safe_ptr",它保证了"非nullness".

编辑:删除了问题.如果感兴趣,请参见编 向感兴趣的人发布最终解决方案:

此代码现在托管在Google代码上.

#pragma once

#include <memory>
#include <type_traits>
#include <exception>

template<typename T>
class safe_ptr
{   
    template <typename> friend class safe_ptr;
public:
    typedef T element_type;

    safe_ptr() : impl_(std::make_shared<T>()){} 

    safe_ptr(const safe_ptr<T>& other) : impl_(other.impl_){}

    template<typename U>
    safe_ptr(const safe_ptr<U>& other, typename std::enable_if<std::is_convertible<U*, T*>::value, void*>::type = 0) : impl_(other.impl_){}

    template<typename U>    
    safe_ptr(const U& impl, typename std::enable_if<std::is_convertible<typename std::add_pointer<U>::type, T*>::value, void>::type* = 0)
        : impl_(std::make_shared<U>(impl)) {}

    template<typename U, typename D>        
    safe_ptr(const U& impl, D dtor, typename std::enable_if<std::is_convertible<typename std::add_pointer<U>::type, T*>::value, void>::type* …
Run Code Online (Sandbox Code Playgroud)

c++ pointers smart-pointers c++11

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