/*
Copyright (C) 1996-2001 Id Software, Inc.
Copyright (C) 2002-2009 John Fitzgibbons and others
Copyright (C) 2010-2014 QuakeSpasm developers
Copyright (C) 2020-2021 Vittorio Romeo

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

*/

#pragma once

#include "cvar.hpp"

// screen.h

void SCR_Init();
void SCR_LoadPics();

void SCR_UpdateScreen();


void SCR_SizeUp();
void SCR_SizeDown();
void SCR_BringDownConsole();
void SCR_CenterPrint(const char* str);

void SCR_BeginLoadingPlaque();
void SCR_EndLoadingPlaque();

int SCR_ModalMessage(
    const char* text, float timeout); // johnfitz -- added timeout

extern float scr_con_current;
extern float scr_conlines; // lines of console to display

extern int sb_lines;

extern int clearnotify; // set to 0 whenever notify text is drawn
extern bool scr_disabled_for_loading;
extern bool scr_skipupdate;

extern cvar_t scr_viewsize;

extern cvar_t scr_sbaralpha; // johnfitz

void SCR_UpdateWholeScreen();

// johnfitz -- stuff for 2d drawing control
typedef enum
{
    CANVAS_NONE,
    CANVAS_DEFAULT,
    CANVAS_CONSOLE,
    CANVAS_NOTIFY,
    CANVAS_MENU,
    CANVAS_SBAR,
    CANVAS_WARPIMAGE,
    CANVAS_CROSSHAIR,
    CANVAS_BOTTOMLEFT,
    CANVAS_BOTTOMRIGHT,
    CANVAS_TOPRIGHT,
    CANVAS_CSQC, // QSS
    CANVAS_INVALID = -1
} canvastype;
extern cvar_t scr_menuscale;
extern cvar_t scr_sbarscale;
extern cvar_t scr_conwidth;
extern cvar_t scr_conscale;
extern cvar_t scr_scale;
extern cvar_t scr_crosshairscale;
// johnfitz

extern int scr_tileclear_updates; // johnfitz
