Initial Void Bastion 0.20 prototype
This commit is contained in:
commit
7362ca0f02
251 files changed
+29688
No files matched your search
@@ -0,0 +1,56 @@
|
||||
@tool
|
||||
extends RefCounted
|
||||
|
||||
# performance.monitors — read Godot's built-in performance monitors.
|
||||
# Params: {monitors?: [string]} — specific monitor names, default = common set
|
||||
# Returns: {fps, frame_time_ms, process_time_ms, physics_time_ms, mem_static_mb,
|
||||
# mem_dynamic_mb, objects, resources, nodes, draw_calls, ...}
|
||||
static func monitors(params: Dictionary) -> Dictionary:
|
||||
var requested: Array = params.get("monitors", [])
|
||||
var out: Dictionary = {}
|
||||
|
||||
# Default set — the monitors agents actually want for quick perf snapshots.
|
||||
if requested.is_empty():
|
||||
out["fps"] = Performance.get_monitor(Performance.TIME_FPS)
|
||||
out["frame_time_ms"] = Performance.get_monitor(Performance.TIME_PROCESS) * 1000.0
|
||||
out["physics_time_ms"] = Performance.get_monitor(Performance.TIME_PHYSICS_PROCESS) * 1000.0
|
||||
out["mem_static_mb"] = Performance.get_monitor(Performance.MEMORY_STATIC) / 1048576.0
|
||||
out["mem_static_max_mb"] = Performance.get_monitor(Performance.MEMORY_STATIC_MAX) / 1048576.0
|
||||
out["object_count"] = int(Performance.get_monitor(Performance.OBJECT_COUNT))
|
||||
out["resource_count"] = int(Performance.get_monitor(Performance.OBJECT_RESOURCE_COUNT))
|
||||
out["node_count"] = int(Performance.get_monitor(Performance.OBJECT_NODE_COUNT))
|
||||
out["orphan_node_count"] = int(Performance.get_monitor(Performance.OBJECT_ORPHAN_NODE_COUNT))
|
||||
out["draw_calls"] = int(Performance.get_monitor(Performance.RENDER_TOTAL_DRAW_CALLS_IN_FRAME))
|
||||
else:
|
||||
for name in requested:
|
||||
var enum_value := _resolve_monitor_name(String(name))
|
||||
if enum_value == -1:
|
||||
out[name] = null
|
||||
else:
|
||||
out[name] = Performance.get_monitor(enum_value)
|
||||
|
||||
return _ok({"monitors": out})
|
||||
|
||||
|
||||
# Map friendly strings to Performance.* enum values so callers don't have to
|
||||
# remember the integer IDs.
|
||||
static func _resolve_monitor_name(name: String) -> int:
|
||||
match name:
|
||||
"fps": return Performance.TIME_FPS
|
||||
"frame_time": return Performance.TIME_PROCESS
|
||||
"physics_time": return Performance.TIME_PHYSICS_PROCESS
|
||||
"mem_static": return Performance.MEMORY_STATIC
|
||||
"mem_static_max": return Performance.MEMORY_STATIC_MAX
|
||||
"objects": return Performance.OBJECT_COUNT
|
||||
"resources": return Performance.OBJECT_RESOURCE_COUNT
|
||||
"nodes": return Performance.OBJECT_NODE_COUNT
|
||||
"orphan_nodes": return Performance.OBJECT_ORPHAN_NODE_COUNT
|
||||
"draw_calls": return Performance.RENDER_TOTAL_DRAW_CALLS_IN_FRAME
|
||||
"audio_latency": return Performance.AUDIO_OUTPUT_LATENCY
|
||||
"physics_2d_active_objects": return Performance.PHYSICS_2D_ACTIVE_OBJECTS
|
||||
"physics_3d_active_objects": return Performance.PHYSICS_3D_ACTIVE_OBJECTS
|
||||
_: return -1
|
||||
|
||||
|
||||
static func _ok(data) -> Dictionary:
|
||||
return {"data": data}
|
||||
Reference in new issue
Block a user