citrun

watch C/C++ source code execute
Log | Files | Refs | LICENSE

gl_atlas.glsl (610B)


      1 uniform sampler2D u_atlas_tex;
      2 uniform ivec4 u_atlas_info;
      3 
      4 #define GLYPHY_TEXTURE1D_EXTRA_DECLS , sampler2D _tex, ivec4 _atlas_info, ivec2 _atlas_pos
      5 #define GLYPHY_TEXTURE1D_EXTRA_ARGS , _tex, _atlas_info, _atlas_pos
      6 #define GLYPHY_DEMO_EXTRA_ARGS , u_atlas_tex, u_atlas_info, gi.atlas_pos
      7 
      8 vec4
      9 glyphy_texture1D_func (int offset GLYPHY_TEXTURE1D_EXTRA_DECLS)
     10 {
     11   ivec2 item_geom = _atlas_info.zw;
     12   vec2 pos = (vec2 (_atlas_pos.xy * item_geom +
     13 		   ivec2 (mod (float (offset), float (item_geom.x)), offset / item_geom.x)) +
     14 	      + vec2 (.5, .5)) / vec2(_atlas_info.xy);
     15   return texture2D (_tex, pos);
     16 }