当前位置:  编程技术>移动开发
本页文章导读:
    ▪提高效率 惯用的几个xcode快捷键        提高效率 常用的几个xcode快捷键能用好快捷键,不仅仅可以提高工作效率,而且让你看起来更加的自信和能干,下面几个常用的快捷键,希望对你在工作中有帮助 1.首先说明一下几个标示的.........
    ▪ motorola 扫描头有关解释        motorola 扫描头相关解释motorola scanner datasheet相关解释(以下通过Simple Serial Interface进行设置,非扫描官方datasheet的设置条码): One Discrete Length:一个单独的条码长度,就是扫描头设置以后,只支.........
    ▪ OpenGL ES2学习札记(8)- Varying变量       OpenGL ES2学习笔记(8)-- Varying变量上一篇文章里绘制的三角形,颜色都是写死在Fragment Shader里的,这篇文章介绍如何把颜色写到顶点数据里并且在Shader里使用Varying变量实现颜色插值。 实例代.........

[1]提高效率 惯用的几个xcode快捷键
    来源: 互联网  发布时间: 2014-02-18
提高效率 常用的几个xcode快捷键

能用好快捷键,不仅仅可以提高工作效率,而且让你看起来更加的自信和能干,下面几个常用的快捷键,希望对你在工作中有帮助


1.首先说明一下几个标示的意思

Command  ⌘

Control      ⌃ 

Option       ⌥

Shift          ⇧

Click          ʘ


2. 文档浏览(⌥ ʘ)

    打开文档(⌥ʘʘ)

  


3. xxx.h 文件和xxx.m 文件之间的切换(^⌘↑ ^⌘↓)



4. 单行注释(⌘/)



5. 显示或隐藏debug area (⇧⌘Y)



6. 查找 (⌘F)

    查找并替换 (⌥⌘F)

    全工程查找 (⇧⌘F) 

    全工程查找并替换(⌥⇧⌘F)



参考:http://nshipster.com/xcode-key-bindings-and-gestures/



    
[2] motorola 扫描头有关解释
    来源: 互联网  发布时间: 2014-02-18
motorola 扫描头相关解释
motorola scanner datasheet相关解释(以下通过Simple Serial Interface进行设置,非扫描官方datasheet的设置条码):
One Discrete Length:一个单独的条码长度,就是扫描头设置以后,只支持指定的一个长度的条码,发送格式:指定的条码长度作为长度参数1的值,长度参数2的值设置为0x00即可(比如设置interleaved 2 of 5 类型的只支持14位的条码,发送的参数为:0x16 14 0x17 00  注:0x16为长度参数1,0x17为长度参数2).
Two Discrete Lengths:两个单独的条码长度都可以支持,比如支持10位的和14位的,这时发送格式为:指定的长度条码长度大的数值在前,小的数值在后(比如设置interleaved 2 of 5 类型的只支持10位和14位的条码,发送的参数为:0x16 14 0x17 10  注:0x16为长度参数1,0x17为长度参数2 ).
Length Within Range: 设置一个条码支持的长度范围,比如支持从10位到14位的条码(包含10位和14位),这时发送的格式为:指定的长度范围最小的数值在前,最大的数值在后(比如设置interleaved 2 of 5类型的支持10位到14位的条码,发送的参数为:0x16 10 0x17 14 注:0x16为长度参数1,0x17为长度参数2 ).

注意事项:由于interleaved 2 of 5和 discrete 2 of 5类型的条码的特殊性,摩托罗拉官方建议以One Discrete Length 或 Two Discrete Lengths这种方式设置扫描头,防止扫描到的数据可能部分缺少。

    
[3] OpenGL ES2学习札记(8)- Varying变量
    来源: 互联网  发布时间: 2014-02-18
OpenGL ES2学习笔记(8)-- Varying变量

上一篇文章里绘制的三角形,颜色都是写死在Fragment Shader里的,这篇文章介绍如何把颜色写到顶点数据里并且在Shader里使用Varying变量实现颜色插值。

实例代码和效果

把下面的脚本复制到OpenGL Console里:

import java.nio.ByteBuffer
import java.nio.ByteOrder
import javax.media.opengl.GL

def vertexShaderCode = """
  attribute vec4 a_Position;
  attribute vec4 a_Color;
  varying   vec4 v_Color;
  
  void main() {
    gl_Position = a_Position;
    v_Color = a_Color;
  }
"""

def fragmentShaderCode = """
  precision mediump float;
  varying vec4 v_Color;
  
  void main() {
    gl_FragColor = v_Color;
  }
"""

def shaderProgram = glob.compileAndLink(vertexShaderCode, fragmentShaderCode)
def aPositionLocation = shaderProgram.getAttribLocation("a_Position")
def aColorLocation = shaderProgram.getAttribLocation("a_Color")
shaderProgram.use()


def BYTES_PER_FLOAT = 4
def POSITION_ELEMENT_COUNT = 2
def COLOR_ELEMENT_COUNT = 3
def STRIDE = (POSITION_ELEMENT_COUNT + COLOR_ELEMENT_COUNT) * BYTES_PER_FLOAT
def POINT_COUNT = 3

def vertices = [
//x     y     r     g     b
 0.0f, 0.0f, 1.0f, 0.0f, 0.0f,
 0.8f, 0.0f, 0.0f, 1.0f, 0.0f,
 0.0f, 0.8f, 0.0f, 0.0f, 1.0f,
] as float[]

def vertexData = ByteBuffer
        .allocateDirect(vertices.length * BYTES_PER_FLOAT)
        .order(ByteOrder.nativeOrder())
        .asFloatBuffer()
vertexData.put(vertices)

vertexData.position(0)
gl.glVertexAttribPointer(aPositionLocation,
        POSITION_ELEMENT_COUNT, gl.GL_FLOAT, false, STRIDE, vertexData)
gl.glEnableVertexAttribArray(aPositionLocation)

vertexData.position(POSITION_ELEMENT_COUNT)
gl.glVertexAttribPointer(aColorLocation,
        COLOR_ELEMENT_COUNT, gl.GL_FLOAT, false, STRIDE, vertexData)
gl.glEnableVertexAttribArray(aColorLocation)


gl.glClear(gl.GL_COLOR_BUFFER_BIT)
gl.glDrawArrays(gl.GL_TRIANGLES, 0, POINT_COUNT)
效果:

顶点颜色属性

先来看看Vertex Shader代码:

  attribute vec4 a_Position;
  attribute vec4 a_Color;
  varying   vec4 v_Color;
  
  void main() {
    gl_Position = a_Position;
    v_Color = a_Color;
  }
现在有两个vec4类型的attribute变量,一个代表顶点的位置(xyzw),一个代表颜色(rgba)。我画了个示意图:


def BYTES_PER_FLOAT = 4
def POSITION_ELEMENT_COUNT = 2
def COLOR_ELEMENT_COUNT = 3
def STRIDE = (POSITION_ELEMENT_COUNT + COLOR_ELEMENT_COUNT) * BYTES_PER_FLOAT
def POINT_COUNT = 3

def vertices = [
//x     y     r     g     b
 0.0f, 0.0f, 1.0f, 0.0f, 0.0f,
 0.8f, 0.0f, 0.0f, 1.0f, 0.0f,
 0.0f, 0.8f, 0.0f, 0.0f, 1.0f,
] as float[]
除了位置(x和y坐标)外,我们把颜色(rgb)也放到了数组里,如下图所示:


def shaderProgram = glob.compileAndLink(vertexShaderCode, fragmentShaderCode)
def aPositionLocation = shaderProgram.getAttribLocation("a_Position")
def aColorLocation = shaderProgram.getAttribLocation("a_Color")
shaderProgram.use()
...
vertexData.position(0)
gl.glVertexAttribPointer(aPositionLocation,
        POSITION_ELEMENT_COUNT, gl.GL_FLOAT, false, STRIDE, vertexData)
gl.glEnableVertexAttribArray(aPositionLocation)

vertexData.position(POSITION_ELEMENT_COUNT)
gl.glVertexAttribPointer(aColorLocation,
        COLOR_ELEMENT_COUNT, gl.GL_FLOAT, false, STRIDE, vertexData)
gl.glEnableVertexAttribArray(aColorLocation)
上面这段代码把Vertex Shader和顶点数据联系在了一起:


Varying变量

Vertex Shader和Fragment Shader都定义了一个vec4类型的Varying变量,这个变量将Vertex和Fragment Shader连接了起来。Vertex Shader把顶点的颜色属性传递给varying变量(v_Color = a_Color;),然后OpenGL会对其进行插值,这样我们就可以在Fragment Shader里使用插值后的变量了(gl_FragColor = v_Color;)。




    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
编程语言 iis7站长之家
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3