diff options
author | Jaebaek Seo <duke.acacia@gmail.com> | 2018-11-16 10:30:55 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-16 10:30:55 -0500 |
commit | 01c586239b4d1c7d3a19d23b2f022cd6ddddb846 (patch) | |
tree | 21cdab24d9800d1f578c0334eddacd54653e5e8a /tests | |
parent | 6083a8a0ca2a03c241afb06ec20d7b9f68121033 (diff) | |
download | amber-01c586239b4d1c7d3a19d23b2f022cd6ddddb846.tar.gz |
Vulkan: add draw triangles (#52)
Vulkan: add draw triangles
Add tests/cases/draw_triangle_list.amber to test drawing simple
triangles and update engine to conduct draw based on parameters of
draw array command.
Fixes #57
Diffstat (limited to 'tests')
-rw-r--r-- | tests/cases/clear.amber | 4 | ||||
-rw-r--r-- | tests/cases/clear_and_probe_all_wrong_color.expect_fail.amber | 4 | ||||
-rw-r--r-- | tests/cases/clear_and_probe_small_wrong_color.expect_fail.amber | 4 | ||||
-rw-r--r-- | tests/cases/clear_and_probe_too_large_rect.expect_fail.amber | 4 | ||||
-rw-r--r-- | tests/cases/clear_color.amber | 4 | ||||
-rw-r--r-- | tests/cases/clear_color_without_clear_command.expect_fail.amber | 4 | ||||
-rw-r--r-- | tests/cases/draw_triangle_list.amber | 100 | ||||
-rw-r--r-- | tests/cases/multiple_clear_color.amber | 4 |
8 files changed, 107 insertions, 21 deletions
diff --git a/tests/cases/clear.amber b/tests/cases/clear.amber index b178987..6068b98 100644 --- a/tests/cases/clear.amber +++ b/tests/cases/clear.amber @@ -20,9 +20,7 @@ layout(location = 0) in vec4 color_in; layout(location = 0) out vec4 color_out; -void -main() -{ +void main() { color_out = color_in; } diff --git a/tests/cases/clear_and_probe_all_wrong_color.expect_fail.amber b/tests/cases/clear_and_probe_all_wrong_color.expect_fail.amber index fda1da2..82f34cd 100644 --- a/tests/cases/clear_and_probe_all_wrong_color.expect_fail.amber +++ b/tests/cases/clear_and_probe_all_wrong_color.expect_fail.amber @@ -20,9 +20,7 @@ layout(location = 0) in vec4 color_in; layout(location = 0) out vec4 color_out; -void -main() -{ +void main() { color_out = color_in; } diff --git a/tests/cases/clear_and_probe_small_wrong_color.expect_fail.amber b/tests/cases/clear_and_probe_small_wrong_color.expect_fail.amber index 54eee4f..431fb31 100644 --- a/tests/cases/clear_and_probe_small_wrong_color.expect_fail.amber +++ b/tests/cases/clear_and_probe_small_wrong_color.expect_fail.amber @@ -20,9 +20,7 @@ layout(location = 0) in vec4 color_in; layout(location = 0) out vec4 color_out; -void -main() -{ +void main() { color_out = color_in; } diff --git a/tests/cases/clear_and_probe_too_large_rect.expect_fail.amber b/tests/cases/clear_and_probe_too_large_rect.expect_fail.amber index ed58f41..a4c8bfb 100644 --- a/tests/cases/clear_and_probe_too_large_rect.expect_fail.amber +++ b/tests/cases/clear_and_probe_too_large_rect.expect_fail.amber @@ -20,9 +20,7 @@ layout(location = 0) in vec4 color_in; layout(location = 0) out vec4 color_out; -void -main() -{ +void main() { color_out = color_in; } diff --git a/tests/cases/clear_color.amber b/tests/cases/clear_color.amber index 74433de..634ae8b 100644 --- a/tests/cases/clear_color.amber +++ b/tests/cases/clear_color.amber @@ -20,9 +20,7 @@ layout(location = 0) in vec4 color_in; layout(location = 0) out vec4 color_out; -void -main() -{ +void main() { color_out = color_in; } diff --git a/tests/cases/clear_color_without_clear_command.expect_fail.amber b/tests/cases/clear_color_without_clear_command.expect_fail.amber index e367c6d..608c0c9 100644 --- a/tests/cases/clear_color_without_clear_command.expect_fail.amber +++ b/tests/cases/clear_color_without_clear_command.expect_fail.amber @@ -20,9 +20,7 @@ layout(location = 0) in vec4 color_in; layout(location = 0) out vec4 color_out; -void -main() -{ +void main() { color_out = color_in; } diff --git a/tests/cases/draw_triangle_list.amber b/tests/cases/draw_triangle_list.amber new file mode 100644 index 0000000..a15c0a1 --- /dev/null +++ b/tests/cases/draw_triangle_list.amber @@ -0,0 +1,100 @@ +# Copyright 2018 The Amber Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +[vertex shader] +#version 430 + +layout(location = 0) in vec4 position; +layout(location = 1) in vec4 vert_color; +layout(location = 0) out vec4 frag_color; + +void main() { + gl_Position = position; + frag_color = vert_color; +} + +[fragment shader] +#version 430 + +layout(location = 0) in vec4 frag_color; +layout(location = 0) out vec4 final_color; + +void main() { + final_color = frag_color; +} + +[vertex data] +# position vert_color + 0/R8G8_SNORM 1/R8G8B8_UNORM + +# Red for entire frame +# R8 G8 R8 G8 B8 + -128 -128 255 0 0 + 127 127 255 0 0 + -128 127 255 0 0 + + -128 -128 255 0 0 + 127 127 255 0 0 + 127 -128 255 0 0 + +# Green for half frame +# R8 G8 R8 G8 B8 + 0 -128 0 255 0 + 127 127 0 255 0 + 0 127 0 255 0 + + 0 -128 0 255 0 + 127 127 0 255 0 + 127 -128 0 255 0 + +# Blue for quarter frame +# R8 G8 R8 G8 B8 + -128 0 0 0 255 + 0 127 0 0 255 + -128 127 0 0 255 + + -128 0 0 0 255 + 0 127 0 0 255 + 0 0 0 0 255 + +# Mixed color for quarter frame +# R8 G8 R8 G8 B8 + 0 0 128 128 128 + 127 127 128 128 128 + 0 127 128 128 128 + + 0 0 128 128 128 + 127 127 128 128 128 + 127 0 128 128 128 + +[test] +clear + +draw arrays TRIANGLE_LIST 0 6 +relative probe rect rgb (0.0, 0.0, 1.0, 1.0) (1.0, 0, 0) + +draw arrays TRIANGLE_LIST 6 6 +relative probe rect rgb (0.0, 0.0, 0.5, 1.0) (1.0, 0, 0) +relative probe rect rgb (0.5, 0.0, 0.5, 1.0) (0, 1.0, 0) + +draw arrays TRIANGLE_LIST 12 6 +relative probe rect rgb (0.0, 0.0, 0.5, 0.5) (1.0, 0, 0) +relative probe rect rgb (0.5, 0.0, 0.5, 1.0) (0, 1.0, 0) +relative probe rect rgb (0.0, 0.5, 0.5, 0.5) (0, 0, 1.0) + +draw arrays TRIANGLE_LIST 18 6 +relative probe rect rgb (0.0, 0.0, 0.5, 0.5) (1.0, 0, 0) +relative probe rect rgb (0.5, 0.0, 0.5, 0.5) (0, 1.0, 0) +relative probe rect rgb (0.0, 0.5, 0.5, 0.5) (0, 0, 1.0) +relative probe rect rgb (0.5, 0.5, 0.5, 0.5) (0.5, 0.5, 0.5) diff --git a/tests/cases/multiple_clear_color.amber b/tests/cases/multiple_clear_color.amber index ede2d82..f70d97e 100644 --- a/tests/cases/multiple_clear_color.amber +++ b/tests/cases/multiple_clear_color.amber @@ -20,9 +20,7 @@ layout(location = 0) in vec4 color_in; layout(location = 0) out vec4 color_out; -void -main() -{ +void main() { color_out = color_in; } |