package io

import (
	"time"

	"edgaru089.ink/go/gl01/internal/util/itype"
)

var (
	DisplaySize itype.Vec2i // Size of the window viewport in pixels.

	ClearColor itype.Vec4f // Clear color of the renderer.
	FogColor   itype.Vec4f // Color of the fog. Changes if the player is e.g. under water

	// Directions are not always normalized.
	ViewPos, ViewDir     itype.Vec3d // Position and Direction of the player view.
	RenderPos, RenderDir itype.Vec3d // Position and Direction of view for the current render pass. Might be different for e.g. lighting passes

	ShowDebugInfo bool // Show debug info (F3 screen)?

	// Per-Frame Diagnostics information
	Diagnostics struct {
		CgoCalls int64    // Cgo calls in the last frame
		Times    struct { // Times spent
			GUI, Logic, Render time.Duration
			RenderPasses       struct {
				Depthmap,
				Geometry,
				SSAO,
				Lighting,
				Postfx time.Duration
			}
		}
	}
)
