NDK中, 如何提高脚本式语言的可读性_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > NDK中, 如何提高脚本式语言的可读性

NDK中, 如何提高脚本式语言的可读性

 2014/4/30 14:49:04  luenmicro  博客园  我要评论(0)
  • 摘要:原文来自安卓教程网android.662p.com,转载时请注明文章的来源:http://android.662p.com/thread-5245-1-1.html[概述]NDK开发中,最常见的脚本式语言应该就是GLSL(OpenGLShadingLanguage),此类语言(一般情况下)不能以单个代码文件形式编写(并不以文件形式直接参与编译),而是需要先以字符串形式完成编码,然后通过开发语言接口的调用来完成工作.就这种形式的编码,个人是挺不喜欢的,一来不易书写,容易笔误,二来不易阅读
  • 标签:脚本

原文来自安卓教程网android.662p.com,转载时请注明文章的来源:http://android.662p.com/thread-5245-1-1.html

 

[概述]  
   
NDK开发中, 最常见的脚本式语言应该就是 GLSL(OpenGL Shading Language) , 此类语言(一般情况下)不能以单个代码文件形式编写(并不以文件形式直接参与编译), 而是需要先以字符串形式完成编码, 然后通过开发语言接口的调用来完成工作. 就这种形式的编码, 个人是挺不喜欢的, 一来不易书写, 容易笔误, 二来不易阅读. 

下面以GLSL为例. 

[常规方法]  
余不赘言, 直接上代码 
// 定义GLSL
const char *demo_glsl =
        "// TODO 定义变量1"
        "// TODO 定义变量2"
        "// TODO 定义变量3"
        "void main(void) {"
        "    // TODO 进行运算"
        "}";
// TODO 将 GLSL 输入到 GL 的接口 




[改进方法]

[ol] 
  新建.glsl文件, 并以C/C++形式编辑, 勿需以字符串形式编辑, 见Snippet-1;  
  编辑Android.mk, 主要是通过sh脚本来重新输出.glsl, 并以.glslh作为后缀名, 见Snippet-2;  
  在主要代码里通过include来调用.glslh, 见Snippet-3.
   
[/ol]    
// Snippet-1
// demo.glsl
// TODO 定义变量1
// TODO 定义变量2
// TODO 定义变量3
void main(void) {
  // TODO 进行运算
}  // Snippet-2
// Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
$(shell $(LOCAL_PATH)/prebuild.sh demo.glsl $(LOCAL_PATH) $(LOCAL_PATH))
//--- END OF Android.mk ---
// prebuild.sh
#!/bin/sh
mkdir -p $3
cat $2/$1 | sed -e 's|^.*$|"&\\n"|' > $3/$1h
//--- END OF prebuild.sh --- // Snippet-3
// demo.cpp
// 定义GLSL
const char demo_glsl={
    #include "demo.glslh"
}; 
  [最后的话]
从本质上来讲, 两种方法其实是一致的, 只不过是修改了输入的形式. 记得经典Objective-C(橙子)的那本书有一章就讲过: 通过间接的方法, 任何事情都可以完成. 或许会有人觉得这是多此一举, 但我们从另外一个角度来看的话, 或许是一件提高工作效率的事情, 尤其是在当下辅助工具颇丰的环境下, 比如语法高亮标记工具. 当然这种方法不只限于GLSL, 只要你想.  

详细说明:http://android.662p.com/thread-5245-1-1.html

发表评论
用户名: 匿名