Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Groove/Ridge/Hidden borders #657

Merged
merged 3 commits into from Dec 22, 2016
Merged
Changes from 1 commit
Commits
File filter...
Filter file types
Jump to…
Jump to file
Failed to load files.

Always

Just for now

Next

refactored ps_border a bit

  • Loading branch information
kvark committed Dec 14, 2016
commit 28bcb4f0a80123c6acf850889cc66d928d8af765
@@ -26,18 +26,6 @@ precision mediump sampler2DArray;
#define UV_NORMALIZED uint(0)
#define UV_PIXEL uint(1)

// Border styles as defined in webrender_traits/types.rs
#define BORDER_STYLE_NONE 0
#define BORDER_STYLE_SOLID 1
#define BORDER_STYLE_DOUBLE 2
#define BORDER_STYLE_DOTTED 3
#define BORDER_STYLE_DASHED 4
#define BORDER_STYLE_HIDDEN 5
#define BORDER_STYLE_GROOVE 6
#define BORDER_STYLE_RIDGE 7
#define BORDER_STYLE_INSET 8
#define BORDER_STYLE_OUTSET 9

#define MAX_STOPS_PER_ANGLE_GRADIENT 8

uniform sampler2DArray sCache;
@@ -227,30 +215,6 @@ Glyph fetch_glyph(int index) {
return glyph;
}

struct Border {
vec4 style;
vec4 widths;
vec4 colors[4];
vec4 radii[2];
};

Border fetch_border(int index) {
Border border;

ivec2 uv = get_fetch_uv_8(index);

border.style = texelFetchOffset(sData128, uv, 0, ivec2(0, 0));
border.widths = texelFetchOffset(sData128, uv, 0, ivec2(1, 0));
border.colors[0] = texelFetchOffset(sData128, uv, 0, ivec2(2, 0));
border.colors[1] = texelFetchOffset(sData128, uv, 0, ivec2(3, 0));
border.colors[2] = texelFetchOffset(sData128, uv, 0, ivec2(4, 0));
border.colors[3] = texelFetchOffset(sData128, uv, 0, ivec2(5, 0));
border.radii[0] = texelFetchOffset(sData128, uv, 0, ivec2(6, 0));
border.radii[1] = texelFetchOffset(sData128, uv, 0, ivec2(7, 0));

return border;
}

vec4 fetch_instance_geometry(int index) {
ivec2 uv = get_fetch_uv_1(index);

@@ -4,6 +4,18 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */

// Border styles as defined in webrender_traits/types.rs
#define BORDER_STYLE_NONE 0
#define BORDER_STYLE_SOLID 1
#define BORDER_STYLE_DOUBLE 2
#define BORDER_STYLE_DOTTED 3
#define BORDER_STYLE_DASHED 4
#define BORDER_STYLE_HIDDEN 5
#define BORDER_STYLE_GROOVE 6
#define BORDER_STYLE_RIDGE 7
#define BORDER_STYLE_INSET 8
#define BORDER_STYLE_OUTSET 9

void discard_pixels_in_rounded_borders(vec2 local_pos) {
float distanceFromRef = distance(vRefPoint, local_pos);
if (vRadii.x > 0.0 && (distanceFromRef > vRadii.x || distanceFromRef < vRadii.z)) {
@@ -324,9 +336,11 @@ void main(void) {
case BORDER_STYLE_NONE:
draw_solid_border(distance_from_mix_line, local_pos);
break;
case BORDER_STYLE_GROOVE: //TODO
case BORDER_STYLE_RIDGE: //TODO
case BORDER_STYLE_HIDDEN:
default:
discard;

}

#ifdef WR_FEATURE_TRANSFORM
@@ -3,6 +3,30 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */

struct Border {
vec4 style;
vec4 widths;
vec4 colors[4];
vec4 radii[2];
};

Border fetch_border(int index) {
Border border;

ivec2 uv = get_fetch_uv_8(index);

border.style = texelFetchOffset(sData128, uv, 0, ivec2(0, 0));
border.widths = texelFetchOffset(sData128, uv, 0, ivec2(1, 0));
border.colors[0] = texelFetchOffset(sData128, uv, 0, ivec2(2, 0));
border.colors[1] = texelFetchOffset(sData128, uv, 0, ivec2(3, 0));
border.colors[2] = texelFetchOffset(sData128, uv, 0, ivec2(4, 0));
border.colors[3] = texelFetchOffset(sData128, uv, 0, ivec2(5, 0));
border.radii[0] = texelFetchOffset(sData128, uv, 0, ivec2(6, 0));
border.radii[1] = texelFetchOffset(sData128, uv, 0, ivec2(7, 0));

return border;
}

void main(void) {
Primitive prim = load_primitive();
Border border = fetch_border(prim.prim_index);
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.