| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- // Copyright (c) 2017-2020 Xiamen Yaji Software Co., Ltd.
- CCEffect %{
- techniques:
- - passes:
- - vert: profiler-vs:vert
- frag: profiler-fs:frag
- priority: max
- depthStencilState:
- depthTest: false
- depthWrite: false
- blendState:
- targets:
- - blend: true
- blendSrc: src_alpha
- blendDst: one_minus_src_alpha
- blendDstAlpha: one_minus_src_alpha
- rasterizerState:
- cullMode: none
- }%
- CCProgram profiler-vs %{
- precision mediump float;
- #include <builtin/uniforms/cc-global>
- #pragma define COLS 8 // multiple of 4
- #pragma define ROWS 11
- #pragma define VECTOR_COUNT COLS * ROWS / 4
- in vec3 a_position;
- in vec4 a_color;
- out vec2 v_uv;
- uniform Constants {
- vec4 offset; // xy: bottom-left corner offset, z: symbol width
- };
- uniform PerFrameInfo {
- vec4 digits[VECTOR_COUNT];
- };
- float getComponent(vec4 v, float i) {
- if (i < 1.0) { return v.x; }
- else if (i < 2.0) { return v.y; }
- else if (i < 3.0) { return v.z; }
- else { return v.w; }
- }
- vec4 vert () {
- mat2 proj = mat2(cc_matProj[0].xy, cc_matProj[1].xy);
- proj /= abs(proj[1].x + proj[1].y);
- vec2 position = proj * a_position.xy + offset.xy;
- v_uv = a_color.xy;
- if (a_color.z >= 0.0) {
- float n = getComponent(digits[int(a_color.z)], a_color.w);
- v_uv += vec2(offset.z * n, 0.0);
- }
- return vec4(position, 0.0, 1.0);
- }
- }%
- CCProgram profiler-fs %{
- precision mediump float;
- #include <legacy/output>
- in vec2 v_uv;
- uniform sampler2D mainTexture;
- vec4 frag () {
- return CCFragOutput(texture(mainTexture, v_uv));
- }
- }%
|