From a6a2cfce5389581f62ce8706ee9bc6ba602e588f Mon Sep 17 00:00:00 2001 From: Jaebaek Seo Date: Wed, 5 Dec 2018 13:02:08 -0500 Subject: Vulkan: handle DoDrawRect (#134) `draw rect` command creates new vertices for a rectangle every time. Thus, DoDrawRect() resets vertex buffer and graphics pipeline every time and creates new one accordingly. Fixes #39 --- tests/cases/draw_rectangles.amber | 58 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 tests/cases/draw_rectangles.amber (limited to 'tests') diff --git a/tests/cases/draw_rectangles.amber b/tests/cases/draw_rectangles.amber new file mode 100644 index 0000000..2e5e5f2 --- /dev/null +++ b/tests/cases/draw_rectangles.amber @@ -0,0 +1,58 @@ +# 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 = 0) out vec4 frag_color; + +layout(set = 0, binding = 0) buffer block1 { + vec4 in_color; +}; + +void main() { + gl_Position = position; + frag_color = in_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; +} + +[test] +clear + +ssbo 0 subdata vec4 0 1.0 0.0 0.0 1.0 +draw rect -1 -1 1 1 + +ssbo 0 subdata vec4 0 0.0 1.0 0.0 1.0 +draw rect -1 0 1 1 + +ssbo 0 subdata vec4 0 0.0 0.0 1.0 1.0 +draw rect 0 -1 1 1 + +ssbo 0 subdata vec4 0 0.5 0.0 0.5 1.0 +draw rect 0 0 1 1 + +relative probe rect rgba (0.0, 0.0, 0.5, 0.5) (1.0, 0, 0, 1.0) +relative probe rect rgba (0.0, 0.5, 0.5, 0.5) ( 0, 1.0, 0, 1.0) +relative probe rect rgba (0.5, 0.0, 0.5, 0.5) ( 0, 0, 1.0, 1.0) +relative probe rect rgba (0.5, 0.5, 0.5, 0.5) (0.5, 0, 0.5, 1.0) -- cgit v1.2.3