小编Geo*_*rge的帖子

将 glTexImage2D 保存到文件系统以供检查

我有一个 3D 图形应用程序,它表现出不良的纹理行为(具体来说:特定的纹理在不应该显示为黑色的情况下显示为黑色)。我在以下调用中隔离了纹理数据:

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, fmt->gl_type, data)
Run Code Online (Sandbox Code Playgroud)

我已经检查了通话中的所有值并验证它们不是NULL。有没有办法使用所有这些数据将位图/png/某种可视格式保存到(Linux)文件系统,以便我可以检查纹理以验证它不是黑色/某种垃圾?重要的是我正在使用 OpenGL ES 2.0 (GLES2)。

c++ textures opengl-es framebuffer opengl-es-2.0

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

由表达式文字生成的正则表达式是否共享单个实例?

以下代码片段(来自 Crockford 的Javascript:The Good Parts)演示了由正则表达式文字创建的 RegExp 对象共享单个实例:

function make_a_matcher( ) {
    return /a/gi;
}

var x = make_a_matcher( );
var y = make_a_matcher( );

// Beware: x and y are the same object!

x.lastIndex = 10;

document.writeln(y.lastIndex); // 10
Run Code Online (Sandbox Code Playgroud)

问题:这与其他文字一样吗?我尝试修改上面的代码以使用字符串"string",但出现了一堆错误。

javascript regex instance literals ecmascript-3

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

使用 `git commit --amend` 后旧提交会发生什么?

假设我们有分支:

A <-- B <-- C

进一步假设我们git commit --amend用来更改CC'

A <-- B <-- C'

问题:(C从字面上讲)会发生什么?该提交是否仍然存在于 git 的对象存储中(它只是悬挂在我们的主分支上)?

git

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

在这种情况下,为什么括号需要```?

将以下内容键入GHC解释器不会产生错误:

let head' (x:_) = x
Run Code Online (Sandbox Code Playgroud)

但是如果我们删除括号:

let head' x:_ = x
Run Code Online (Sandbox Code Playgroud)

...我们获得:

模式中的解析错误:head'

为什么括号必要?

haskell

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

在模式匹配中使用`++`

将以下内容键入GHC解释器

let describe' all@([x] ++ [y]) = "The first letter of " ++ all ++ " is " ++ [x]
Run Code Online (Sandbox Code Playgroud)

产量

模式中的分析器错误:[x] ++ [y]

为什么Haskell无法匹配模式或all@([x] ++ [y])类似的表达式?"HI"[1,2]

haskell pattern-matching parse-error

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

在 Haskell 中解析 YYYY-MM-DD 形式的日期字符串

Haskell 有没有办法从“YYYY-MM-DD”格式的字符串中解析日期?也就是说,类似的东西parseDateFromString 2016-10-20会以某种常用的 Haskell 日期格式返回日期。

haskell

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

如何在Haskell Turtle库中将“外壳线”转换为“文本”?

考虑(inshell "echo A line of text." empty)有类型Shell Line

问题:如何将这种类型的值转换为Text

haskell haskell-turtle

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

证明在Haskell镜头库中断言的类型等价性

根据镜头教程:

type Getting b a b  = (b -> Const b b) -> (a -> Const b a)

-- ... equivalent to: (b ->       b  ) -> (a ->       b  )

-- ... equivalent to:                     (a ->       b  )
Run Code Online (Sandbox Code Playgroud)

问题:为什么(b -> b) -> (a -> b)相当于(a -> b)

haskell haskell-lens

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

Rust匹配表达式类型是否不确定?

阅读Rust教程我发现了以下代码片段:

let f = File::open("hello.txt");

let mut f = match f {
    Ok(file) => file,
    Err(e) => return Err(e)
};
Run Code Online (Sandbox Code Playgroud)

这似乎f可以具有type Result<_, _>(if f == Err(e))的值或类型的值_(即,无论何种类型file).

那么这是否意味着Rust中的匹配表达式是不确定的类型?

rust

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

在 Makefile 脚本中读取用户输入

我有一个非常简单的 Makefile(只是递归调用另一个子目录 make):

all:
    cd addons/godot-haskell-plugin && make && cd -
run:
    cd addons/godot-haskell-plugin && make run && cd -
Run Code Online (Sandbox Code Playgroud)

我想做的是

  1. 检查是否ENV_VAR定义了shell 变量。
  2. 如果是,那么像往常一样运行 Makefile(即,ENV_VAR=1 make all应该完全按照make all上面的方式运行)。
  3. 如果不是,则提示用户一条消息“警告:ENV_VAR 未定义;继续?[Y/n]”,其中“Y”的输入make allmake run往常一样通过,“n”的输入简单地回显一条消息并退出。

我知道要在 bash 中执行此操作,您将使用echoread函数的组合。但目前尚不清楚如何在 Make 中做到这一点。

shell makefile

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