小编gri*_*ett的帖子

GLSL,不同大小的纹理数组

在GLSL中进行多重纹理时,无论如何都有一个可转换的采样器数组,其中每个纹理的大小不同?此语法无效:

uniform sampler2D texArray[5];
Run Code Online (Sandbox Code Playgroud)

现在似乎唯一的选择是单独创建采样器:

uniform sampler2D tex1;
uniform sampler2D tex2;
uniform sampler2D tex3;
uniform sampler2D tex4;
uniform sampler2D tex5;
Run Code Online (Sandbox Code Playgroud)

但后来我无法迭代它们,这是屁股真正的痛苦.有解决方案吗?

opengl glsl

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

模板元编程评估

所以我有一个模板类,我想接受一个std :: map,其中数据类型是原始指针或std :: unique_ptr.然后在这个类中我想得到底层指针的类型:

typedef typename boost::mpl::if_<
    boost::is_pointer<typename Container::mapped_type>,
    typename Container::mapped_type,
    typename Container::mapped_type::element_type*
>::type data_type
Run Code Online (Sandbox Code Playgroud)

但是,当使用具有原始指针类型的映射实例化类时,我收到以下错误:

error: 'std::map<int, ValueType*>::mapped_type {aka ValueType*}' is not a class, struct, or union type
Run Code Online (Sandbox Code Playgroud)

在我看来它正在评估typename Container::mapped_type::element_type*原始指针,我认为使用模板元编程它不会评估当if_成功时.我应该采取不同的方式吗?

c++ boost boost-mpl template-meta-programming

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

用角度模拟饼干

在我的主要内容中,describe我有以下内容:

beforeEach(inject(function(...) {
    var mockCookieService = {
        _cookies: {},
        get: function(key) {
            return this._cookies[key];
        },
        put: function(key, value) {
            this._cookies[key] = value;
        }
    }

   cookieService = mockCookieService;

   mainCtrl = $controller('MainCtrl', {
       ...
       $cookieStore: cookieService
   }
}
Run Code Online (Sandbox Code Playgroud)

后来我想测试一个控制器如何确认cookie是否已经存在,所以我嵌套了以下描述:

describe('If the cookie already exists', function() {
    beforeEach(function() {
        cookieService.put('myUUID', 'TEST');
    });

    it('Should do not retrieve UUID from server', function() {
        expect(userService.getNewUUID).not.toHaveBeenCalled();
    });
});
Run Code Online (Sandbox Code Playgroud)

但是,当我对其进行更改时,cookieService它不会持久保存到正在创建的控制器中.我采取了错误的做法吗?

谢谢!

编辑:更新了测试代码,这就是我使用$ cookieStore的方式:

var app = angular.module('MyApp', ['UserService', 'ngCookies']);

app.controller('MainCtrl', function ($scope, UserService, …
Run Code Online (Sandbox Code Playgroud)

cookies jasmine angularjs

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

在AngularJS指令模板中的元素上测试focus()

给出以下指令

directive('myDirective', function() {
    return {
        restrict: 'A',
        scope: {},
        replace: false,
        template: '<input ng-focus="onFocus()" type="text" />',
        link: function(scope, element, attr) {
            scope.onFocus = function() {
                console.log('got focus');
            };
        }
    };
});
Run Code Online (Sandbox Code Playgroud)

我已经测试了焦点观察器在浏览器中工作,但我希望能够在单元测试中触发它.这是我尝试过的,但它不起作用.

var element = angular.element('<div my-directive></div>');
$compile(element)($scope);
$scope.$digest();
element.find('input')[0].focus();
Run Code Online (Sandbox Code Playgroud)

我可以看到我正确地使用find调用进入输入框,我希望代码在输入框上触发焦点事件,但什么也没发生.我在这里错过了什么?

javascript jquery jasmine jasmine-jquery angularjs

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

可以简化这个表达式吗?

假设我有一个带有成员变量的类:

std::unordered_map<KeyType, std::shared_ptr<ValueType>> myMap
Run Code Online (Sandbox Code Playgroud)

在一个成员函数中,我想做以下事情:

std::for_each(myMap.begin(), myMap.end(), [](std::pair<const KeyType, std::shared_ptr<ValueType>>& pair){pair.second->someMethod(); });
Run Code Online (Sandbox Code Playgroud)

无论如何缩短lambda表达式?我以为我可以这样做,但它不是有效的语法:

std::for_each(myMap.begin(), myMap.end(), [](decltype(myMap::valueType)& pair){pair.second->someMethod(); });
Run Code Online (Sandbox Code Playgroud)

c++ stl c++11

5
推荐指数
2
解决办法
188
查看次数

AngularJS验证表单数组长度

假设我有一个带有属性的模型对象 favoriteColors

{
    ...
    favoriteColors: ['red', 'green', 'blue']
    ....
}
Run Code Online (Sandbox Code Playgroud)

我用ng-repeat将它们暴露给用户

<form name="userForm">
    ...
    <ul>
        <li ng-repeat="color in user.favoriteColors">
            <input type="text" ng-model="color" />
            <a href="" ng-click="delete(color)">remove</a>
        </li>
    </ul>
    <a href="" ng-click="add()">Add a new favorite color</a>
    ...
</form>
Run Code Online (Sandbox Code Playgroud)

我希望能够检查favoriteColors字段的有效性做这样的事情

<div ng-show="userForm.favoriteColors.$error">
    You must have at least one favorite color
</div>
Run Code Online (Sandbox Code Playgroud)

使用内置的验证器似乎不可能做到这一点,我不确定我会在哪个元素上放置自定义指令以获取ngModelControllerfor favoriteColors.

javascript validation angularjs

3
推荐指数
2
解决办法
8261
查看次数

在Cocoa中使用PDF

我想知道是否有一种方法可以在PDFKit(PDFDocument,PDFPage)中使用更简单的类,并且仍然可以获得对较低级别CGPDFDocumentRef对象的引用.有谁知道这是否可能?

pdf cocoa pdfkit

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

来自c ++文件的gl3w错误

我有一个项目,我首先gl3w.c使用gcc 构建,然后OGLGraphics.cpp使用g ++ 构建自己的文件.Gcc成功编译gl3w.c但是当g ++尝试编译包含的文件时gl3w.h我得到以下错误:

In file included from /mnt/hgfs/grace/src/grace-output/graphics/OGLGraphics.cpp:22:0:
/mnt/hgfs/grace/src/grace-output/include/GL3/gl3w.h:69:8: error: ‘PFNGLDRAWARRAYSPROC’ does not name a type
/mnt/hgfs/grace/src/grace-output/include/GL3/gl3w.h:70:8: error: ‘PFNGLDRAWELEMENTSPROC’ does not name a type
/mnt/hgfs/grace/src/grace-output/include/GL3/gl3w.h:71:8: error: ‘PFNGLGETPOINTERVPROC’ does not name a type
/mnt/hgfs/grace/src/grace-output/include/GL3/gl3w.h:72:8: error: ‘PFNGLPOLYGONOFFSETPROC’ does not name a type
/mnt/hgfs/grace/src/grace-output/include/GL3/gl3w.h:73:8: error: ‘PFNGLCOPYTEXIMAGE1DPROC’ does not name a type
/mnt/hgfs/grace/src/grace-output/include/GL3/gl3w.h:74:8: error: ‘PFNGLCOPYTEXIMAGE2DPROC’ does not name a type
/mnt/hgfs/grace/src/grace-output/include/GL3/gl3w.h:75:8: error: ‘PFNGLCOPYTEXSUBIMAGE1DPROC’ does not name a type
/mnt/hgfs/grace/src/grace-output/include/GL3/gl3w.h:76:8: error: ‘PFNGLCOPYTEXSUBIMAGE2DPROC’ does not name …
Run Code Online (Sandbox Code Playgroud)

c++ opengl

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

量角器:isElementPresent的定位器错误无效

我的e2e测试中有以下简单的代码行...

var promise = ptor.isElementPresent(element(by.binding('firstName')));
Run Code Online (Sandbox Code Playgroud)

我得到一个错误说TypeError: Invalid locator.谷歌搜索后我没有看到很多其他人收到此错误.我在哪里犯了错误?

integration-testing angularjs protractor

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

核心数据:观察特定类型实体的所有更改

我想在添加/更改/删除某种类型的实体时收到通知.我知道这可以通过添加一个观察者来实现managedObjectContext,但是我必须搜索返回的三个集合以查看它们是否包含该类型的对象.我可以使用filteredSetUsingPredicate,但每次有变化时进行三次O(n)操作似乎效率低下.还有另一种更有效的方法来实现这一目标吗?

cocoa core-data objective-c

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

Python空字典没有通过引用传递?

这个样本代码有点奇怪,但请耐心等待...

class Foo(object):
    def __init__(self, internal_dict = None):
        self._internal_dict = internal_dict or {}

        for attribute_name in self.__class__.__dict__.keys():
            attr = getattr(self.__class__, attribute_name)
            if isinstance(attr, str) and attribute_name.startswith("a"):
                # We are iterating over all string attributes of this class whos name begins with "a" 
                self._internal_dict[attribute_name] = {}
                setattr(self, attribute_name + '_nested_object', Foo(internal_dict=self._internal_dict[attribute_name]))

class FooChild(Foo):
    ax = "5"
    ay = "10"

fc = FooChild()

print fc.ax_nested_object._internal_dict # This prints {}

fc.ax_nested_object._internal_dict['123'] = 'abc'

print fc._internal_dict # This prints {'ay': {}, 'ax': {}}
Run Code Online (Sandbox Code Playgroud)

我本来期望我 …

python recursion

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