小编vel*_*yel的帖子

从c ++到目标c的回调

我在objective-c中有ViewController,我的大部分代码都是c ++(.mm).我想从obj-c(在c ++中)为成员函数设置一些回调,并从c ++中调用它们.像这样的东西(它非常简化):

@interface MyClass
{ }
-(void)my_callback;
@end

@implementation MyClass

-(void)my_callback
{
   printf("called!\n");
}

-(void)viewDidLoad
{
   // setup_callback( "to my_callback ?" );
}
@end
Run Code Online (Sandbox Code Playgroud)

和:

void setup_callback(void(*func)()) { func(); }
Run Code Online (Sandbox Code Playgroud)

这当然不正确.有什么建议我可以这样做吗?

c++ objective-c callback member-functions

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

撰写clojure honeysql where子句

起初我对clojure很新.所以,我正在尝试使用honeysql动态编写查询:

(:use [honeysql.core :as sql]
      [honeysql.helpers :refer :all])

(sql/format {:select [:*] :from [:test]
             :where [:or [:= :name "foo"]
                         [:= :name "bar"]]})

;; ["SELECT * FROM test WHERE (name = ? OR name = ?)" "foo" "bar"]
Run Code Online (Sandbox Code Playgroud)

我有函数build-clause:

(defn build-clause [names]
  [:or (map #(vector := :name %) names)])

(sql/format {:select [:*]
             :from [:test]
             :where (build-clause ["foo" "bar"])})

;; ClassCastException clojure.lang.PersistentVector cannot be cast to clojure.lang.Named
Run Code Online (Sandbox Code Playgroud)

我认为问题出在build-clause函数中

[:or ([:= :name "foo"] [:= :name "bar"])]
Run Code Online (Sandbox Code Playgroud)

我想要这个:

[:or [:= :name "foo"] [:= :name :bar]] …
Run Code Online (Sandbox Code Playgroud)

sql clojure map

6
推荐指数
2
解决办法
1461
查看次数

正确的glsl仿射纹理映射

我正在尝试在GLSL中编码正确的2D仿射纹理映射.

说明:

...没有这个图像对我的目的是正确的.右(标记为正确)具有我不想要的透视校正.所以这个:了解Q纹理坐标解决方案(没有进一步的改进)并不是我想要的.

我想简单地在四边形内"拉伸"纹理,如下所示:

在此输入图像描述

但是由两个三角形组成.有什么建议(GLSL)好吗?

opengl math glsl texture-mapping

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