我怎样才能转换* .vert& * .frag到C中的char?

时间:2017-08-02 18:31:08

标签: android c opengl-es android-ndk

我正在用NDK编写一个OpenGL。

我在 main.c中的着色器代码

const convertTimestamp = (timestampInMs: number): string => {
    return moment.utc(timestampInMs).format("YYYY-MM-DD HH:mm:ss");
};

我试过这个snippet来转换(我也改变了 main.c 中创建着色器的方式),但是失败了:

我想通过在 main.c 中读取它们来使用extern着色器文件。

我该如何转换它?

1 个答案:

答案 0 :(得分:0)

您的加载方式与加载任何其他文件的方式相同:

char * get_file_contents(char const* file_name) {
    FILE * file = fopen("vert.glsl", "r");
    fseek(file, 0, SEEK_END);
    size_t size = ftell(file);
    rewind(file);
    char * str = malloc(size);
    fread(str, 1, size, file);
    fclose(file);
    return str;
}

int main() {
    /*...*/
    char const* vShaderStr = get_file_contents("vert.glsl");
    char const* fShaderStr = get_file_contents("frag.glsl");
    userData->programObject = esLoadProgram ( vShaderStr, fShaderStr );
    free(vShaderStr);
    free(fShaderStr);
    /*...*/
}

我只用C ++编程,所以我不会尝试为这段代码添加错误处理。不过,这应该足以让你开始。