# Generated by scripts/generate_pyi.py, do not edit.

from typing import Any, Callable

import renpy

import builtins as __builtins__
import array as array
import math as math
import os as os
import renpy.pygame as pygame
import random as random
import renpy as renpy
import time as time
import renpy.uguu.gl as uguugl
import weakref as weakref

class GL2Draw:
    def __init__(self, /, *args, **kwargs): ...

    def __reduce__(self): ...

    def __setstate__(self, __pyx_state): ...

    def can_block(self): ...

    def draw_screen(self, render_tree, flip=True, screenshot=False): ...

    def event_peek_sleep(self): ...

    def flip(self): ...

    def get_mouse_pos(self): ...

    def get_physical_size(self): ...

    def get_texture_size(self): ...

    def get_window_position(self, physical_size=None): ...

    def init(self, virtual_size): ...

    def init_fbo(self): ...

    def is_pixel_opaque(self, what): ...

    def kill_textures(self): ...

    def load_all_textures(self, what): ...

    def load_texture(self, surf, transient=False, properties={}): ...

    def mouse_event(self, ev): ...

    def mutated_surface(self, surf): ...

    def on_resize(self, first=False, full_reset=False): ...

    def quit(self): ...

    def quit_fbo(self): ...

    def ready_one_texture(self): ...

    def render_to_texture(self, what, alpha=True, properties={}): ...

    def resize(self): ...

    def screenshot(self, render_tree): ...

    def select_framerate(self): ...

    def select_gl_attributes(self, gles): ...

    def select_physical_size(self, physical_size): ...

    def set_mouse_pos(self, x, y): ...

    def should_redraw(self, needs_redraw, first_pass, can_block): ...

    def solid_texture(self, w, h, color): ...

    def translate_point(self, x, y): ...

    def untranslate_point(self, x, y): ...

    def update(self, force=False): ...


class GL2DrawingContext:
    def __init__(self, /, *args, **kwargs): ...

    def __reduce__(self): ...

    def __setstate__(self, __pyx_state): ...

    def merge_uniforms(self, uniforms: dict): ...


def Literal(*args, **kwds): ...

ShaderCache = renpy.gl2.gl2shadercache.ShaderCache

Surface = renpy.pygame.surface.Surface

Texture = renpy.gl2.gl2texture.Texture

def draw_render(what, drawable_width: int, drawable_height: int, projection: 'Matrix', invert_front_face: bool=False): ...

def set_cull_face(cull_face): ...

standard_uniforms: 'set[str]'
BIG_PIXELS: int
current_invert_front_face: int
vsync: int
