///////////////////////////////////////////////////////////////////////////// // apps/graphics/slcd/slcd_trapezoids.cxx // // Copyright (C) 2019 Gregory Nutt. All rights reserved. // Author: Gregory Nutt // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met: // // 1. Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // 2. Redistributions in binary form must reproduce the above copyright // notice, this list of conditions and the following disclaimer in // the documentation and/or other materials provided with the // distribution. // 3. Neither the name NuttX nor the names of its contributors may be // used to endorse or promote products derived from this software // without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE // COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS // OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED // AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// // Included Files ///////////////////////////////////////////////////////////////////////////// #include "graphics/slcd.hxx" #include "slcd.hxx" ///////////////////////////////////////////////////////////////////////////// // Public Data ///////////////////////////////////////////////////////////////////////////// namespace SLcd { // Top horizontal segment const struct SLcdTrapezoidRun GTop_Runs[NTOP_TRAPEZOIDS + 1] = { [0] = { .leftx = 11703, .rightx = 31208, .y = 0 }, [1] = { .leftx = 8972, .rightx = 27323, .y = 780 }, [2] = { .leftx = 9655, .rightx = 34328, .y = 1560 }, [3] = { .leftx = 14434, .rightx = 28867, .y = 7022 } }; // Top-left vertical segment const struct SLcdTrapezoidRun GTopLeft_Runs[NTOPLEFT_TRAPEZOIDS + 1] = { [0] = { .leftx = 7022, .rightx = 7022, .y = 2341 }, [1] = { .leftx = 5461, .rightx = 9362, .y = 4681 }, [2] = { .leftx = 5098, .rightx = 12873, .y = 8192 }, [3] = { .leftx = 3193, .rightx = 10923, .y = 26526 }, [4] = { .leftx = 3121, .rightx = 9986, .y = 27307 }, [5] = { .leftx = 6242, .rightx = 6242, .y = 30427 } }; // Top-right vertical segment const struct SLcdTrapezoidRun GTopRight_Runs[NTOPRIGHT_TRAPEZOIDS + 1] = { [0] = { .leftx = 37059, .rightx = 37059, .y = 3901 }, [1] = { .leftx = 33997, .rightx = 37839, .y = 6242 }, [2] = { .leftx = 30427, .rightx = 37591, .y = 8972 }, [3] = { .leftx = 28477, .rightx = 35924, .y = 27307 }, [4] = { .leftx = 28518, .rightx = 35889, .y = 27697 }, [5] = { .leftx = 32378, .rightx = 32378, .y =30818 } }; // Middle horizontal segment const struct SLcdTrapezoidRun GMiddle_Runs[NMIDDLE_TRAPEZOIDS + 1] = { [0] = { .leftx = 12483, .rightx = 27307, .y = 28867 }, [1] = { .leftx = 8192, .rightx = 30427, .y = 32378 }, [2] = { .leftx = 11703, .rightx = 25746, .y = 36279 } }; // Bottom-left vertical segment const struct SLcdTrapezoidRun GBottomLeft_Runs[NBOTTOMLEFT_TRAPEZOIDS + 1] = { [0] = { .leftx = 5851, .rightx = 5851, .y = 33938 , }, [1] = { .leftx = 1950, .rightx = 9752, .y = 37449 }, [2] = { .leftx = 370, .rightx = 8192, .y = 55784 }, [3] = { .leftx = 0, .rightx = 3364, .y = 60075 }, [4] = { .leftx = 1170, .rightx = 1170, .y = 62025 } }; // Bottom-right vertical segment const struct SLcdTrapezoidRun GBottomRight_Runs[NBOTTOMRIGHT_TRAPEZOIDS + 1] = { [0] = { .leftx = 31988, .rightx = 31988, .y = 34328 }, [1] = { .leftx = 28769, .rightx = 35109, .y = 37059 }, [2] = { .leftx = 27307, .rightx = 34996, .y = 38229 }, [3] = { .leftx = 25746, .rightx = 33183, .y = 56954 }, [4] = { .leftx = 30324, .rightx = 32768, .y = 61245 }, [5] = { .leftx = 31988, .rightx = 31988, .y = 62805 } }; // Bottom horizontal segment const struct SLcdTrapezoidRun GBottom_Runs[NBOTTOM_TRAPEZOIDS + 1] = { [0] = { .leftx = 9362, .rightx = 24576, .y = 58124 }, [1] = { .leftx = 2731, .rightx = 31988, .y = 63976 }, [2] = { .leftx = 4681, .rightx = 28477, .y = 65536 } }; }