/* * This is a gui for the cellular automaton library * * Copyright (C) 2016-2017 Antoine BARTUCCIO, Jean POREE DE RIDDER * * Licensed under the MIT License,(the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * hhttps://opensource.org/licenses/MIT * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #ifndef PIXEL_H_INCLUDED #define PIXEL_H_INCLUDED #include #include #include typedef struct { SDL_Window * window; SDL_Renderer * renderer; int WIDTH; int HEIGHT; SDL_Event event; } SCREEN; /** * Set a pixel on a given screen * @param screen the screen to display the pixel * @param x x position * @param y y position * @param value display white if true and black if false */ void setPixel(SDL_Renderer *renderer, int x, int y, bool value); /** * Display an entire matrix on a given screen * @param screen the screen where the matrix should be displayed * @param m a Matrix */ void displayMatrixSDL(SCREEN *screen, Matrix m); /** * Wait until the user press the enter key * @param screen the screen where the renderer is */ void waitUntilEnter(SCREEN * screen); /** * Print a matrix in a new SDL window * @param Matrix the matrix to display * @return int error code */ int newWindowFromMatrix(Matrix m); /** * Display a message and ask for yes or no to the user * @param message the message to display * @return bool the answer */ bool inputYesOrNo(char message[]); /** * Display matrix choosing the right function * @param m a Matrix * @param useSDL a bool */ void displayMatrixGUI(Matrix m, bool useSDL); /** * Get a number from the user safely * @param min the minimal authorized number * @param max the maximal authorized number * @return int the input number */ int safeNumberInput(int min, int max); /** * Clears the buffer of stdin */ void clearBuffer(); #endif