Differential D13360 Diff 46980 source/blender/gpu/shaders/gpu_shader_image_overlays_stereo_merge_frag.glsl
Changeset View
Changeset View
Standalone View
Standalone View
source/blender/gpu/shaders/gpu_shader_image_overlays_stereo_merge_frag.glsl
| #define S3D_DISPLAY_ANAGLYPH 0 | #define S3D_DISPLAY_ANAGLYPH 0 | ||||
| #define S3D_DISPLAY_INTERLACE 1 | #define S3D_DISPLAY_INTERLACE 1 | ||||
| #define S3D_INTERLACE_ROW 0 | #define S3D_INTERLACE_ROW 0 | ||||
| #define S3D_INTERLACE_COLUMN 1 | #define S3D_INTERLACE_COLUMN 1 | ||||
| #define S3D_INTERLACE_CHECKERBOARD 2 | #define S3D_INTERLACE_CHECKERBOARD 2 | ||||
| /* Composite stereo textures */ | /* Composite stereo textures */ | ||||
| #ifndef USE_GPU_SHADER_CREATE_INFO | |||||
| uniform sampler2D imageTexture; | uniform sampler2D imageTexture; | ||||
| uniform sampler2D overlayTexture; | uniform sampler2D overlayTexture; | ||||
| uniform int stereoDisplaySettings; | uniform int stereoDisplaySettings; | ||||
| layout(location = 0) out vec4 imageColor; | |||||
| layout(location = 1) out vec4 overlayColor; | |||||
| #endif | |||||
| #define stereo_display_mode (stereoDisplaySettings & ((1 << 3) - 1)) | #define stereo_display_mode (stereoDisplaySettings & ((1 << 3) - 1)) | ||||
| #define stereo_interlace_mode ((stereoDisplaySettings >> 3) & ((1 << 3) - 1)) | #define stereo_interlace_mode ((stereoDisplaySettings >> 3) & ((1 << 3) - 1)) | ||||
| #define stereo_interlace_swap bool(stereoDisplaySettings >> 6) | #define stereo_interlace_swap bool(stereoDisplaySettings >> 6) | ||||
| layout(location = 0) out vec4 imageColor; | |||||
| layout(location = 1) out vec4 overlayColor; | |||||
| bool interlace(ivec2 texel) | bool interlace(ivec2 texel) | ||||
| { | { | ||||
| int interlace_mode = stereo_interlace_mode; | int interlace_mode = stereo_interlace_mode; | ||||
| if (interlace_mode == S3D_INTERLACE_CHECKERBOARD) { | if (interlace_mode == S3D_INTERLACE_CHECKERBOARD) { | ||||
| return ((texel.x + texel.y) & 1) != 0; | return ((texel.x + texel.y) & 1) != 0; | ||||
| } | } | ||||
| else if (interlace_mode == S3D_INTERLACE_ROW) { | else if (interlace_mode == S3D_INTERLACE_ROW) { | ||||
| return (texel.y & 1) != 0; | return (texel.y & 1) != 0; | ||||
| Show All 18 Lines | |||||