小编sm8*_*095的帖子

glGetString(GL_VERSION) 得到哪个版本?

是否glGetString(GL_VERSION)获取您的系统支持的最大版本,或者您当前环境的版本?

我知道您需要创建一个上下文才能glGetString()工作,因此这让我想知道它是当前上下文还是最高可用上下文。

opengl

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

ANTLR4:无关的输入错误

我正在阅读"最终的ANTLR4参考"一书,并决定在他们的计算器语法中添加几个关键字以帮助清除记忆.构建语法并编译生成的java代码可以正常工作,但是当我执行访问者代码时,我得到了错误:"line 6:0 extraneous input '$rem' expecting {<EOF>, '(', ID, INT, NEWLINE}"对于'$clearmem'第8行:0也是如此.

这是我的语法文件:

grammar LabeledExpr;

//Parser rules================================= 
prog: kword+
    | stat+ 
    ;

stat: expr endl             # printExpr
    | ID '=' expr endl      # assign
    | NEWLINE               # blank
    ;

expr: expr op=('*'|'/') expr    # MulDiv
    | expr op=('+'|'-') expr    # AddSub
    | INT                       # int
    | ID                        # id
    | '(' expr ')'              # parens
    ;

kword: '$clearmem' endl     #clearMem
    | '$rem' ID endl        #remVar
    ;

endl: …
Run Code Online (Sandbox Code Playgroud)

parsing antlr calculator lang antlr4

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

将无符号字节数组转换为Structs数组

使用C++(特别是GCC,应该更早地提出这个),我将原始纹理数据存储在RGBA格式的无符号字节数组中,每像素32位(每个颜色值8位,带Alpha,等等等等)向前...).问题是,我想编写一个函数,将原始数据作为一个Colors数组返回,其中Color是一个结构,定义如下:

struct Color
{
    uint8 r;
    uint8 g;
    uint8 b;
    uint8 a;
};
Run Code Online (Sandbox Code Playgroud)

加上函数和诸如此类的东西,但这些是结构中唯一的变量.我的想法是,由于每种颜色长度为4个字节,我可以以某种方式将原始字节数组转换为原始大小的1/4的Color数组(在数组的"长度"中,而不是绝对大小).我认为reinterpret_cast是我正在寻找的东西,但在谷歌搜索确认100%你可以将它转换为结构数组而不是只有一个结构后,我找不到任何东西.

所以我想我只是要求某人确认这确实是可能的reinterpret_cast,或者是否有不同的演员或方式来做到这一点.谢谢.

编辑:我的措辞有点奇怪,所以作为一个任意的例子,我想以某种方式将16个无符号字节的数组转换为4种颜色的数组.

编辑:我也知道它有点晚了,但我似乎无法找到如何使用reinterpret_cast在特定位置将一小部分数组转换为单个结构,如果可能的话,而不复制到较小的数组和那样的铸造.因此,对此问题的任何帮助也将不胜感激.

c++ struct pointers casting c++11

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

标签 统计

antlr ×1

antlr4 ×1

c++ ×1

c++11 ×1

calculator ×1

casting ×1

lang ×1

opengl ×1

parsing ×1

pointers ×1

struct ×1