fixed fps counter and figured out why the fonts were not rendering properly
This commit is contained in:
parent
016047f1b6
commit
dd3b63f70f
@ -209,7 +209,7 @@ pub fn main() !void {
|
||||
rl.clearBackground(.sky_blue);
|
||||
|
||||
rl.beginShaderMode(font.shader);
|
||||
rl.gl.rlSetTexture(vollkorn[3].texture.id);
|
||||
rl.gl.rlSetTexture(vollkorn[0].texture.id);
|
||||
rl.gl.rlBegin(rl.gl.rl_quads);
|
||||
|
||||
const lorem = @embedFile("embeds/lorem.txt");
|
||||
@ -217,7 +217,7 @@ pub fn main() !void {
|
||||
var y : f32 = 0;
|
||||
var it = std.mem.splitScalar(u8, lorem, '\n');
|
||||
while (it.next()) |line| {
|
||||
vollkorn[2].render_text(
|
||||
vollkorn[0].render_text(
|
||||
line,
|
||||
rl.Vector2{ .x = 0, .y = y},
|
||||
true,
|
||||
@ -227,7 +227,7 @@ pub fn main() !void {
|
||||
true
|
||||
);
|
||||
|
||||
const font_linegap : f32 = @floatFromInt(vollkorn[3].face.size().metrics().height >> 6);
|
||||
const font_linegap : f32 = @floatFromInt(vollkorn[0].face.size().metrics().height >> 6);
|
||||
const dpi_font_linegap = font_linegap / rl.getWindowScaleDPI().y;
|
||||
|
||||
y += dpi_font_linegap;
|
||||
@ -413,7 +413,7 @@ pub fn main() !void {
|
||||
|
||||
//rl.drawText("Congrats! You created your first window!", rl.getMouseX(), rl.getMouseY(), 20, .white);
|
||||
//rl.drawRectangleLines(0, 0, 100, 100, .red);
|
||||
misc.drawFPS(0, 0, frame_time, frame);
|
||||
misc.drawFPS(0, 0, frame_time);
|
||||
|
||||
//elf.draw();
|
||||
|
||||
@ -424,6 +424,8 @@ pub fn main() !void {
|
||||
rl.endDrawing();
|
||||
|
||||
rl.swapScreenBuffer();
|
||||
|
||||
frame += 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
const c = @import("c.zig").c;
|
||||
// const rl = @import("raylib");
|
||||
const rl = @import("raylib");
|
||||
|
||||
const FPS_CAPTURE_FRAMES_COUNT : i32 = 30; // 30 captures
|
||||
const FPS_AVERAGE_TIME_SECONDS : f32 = 0.5; // 500 milliseconds
|
||||
@ -10,42 +9,43 @@ var history : [FPS_CAPTURE_FRAMES_COUNT]f32 = .{0} ** FPS_CAPTURE_FRAMES_COUNT;
|
||||
var average : f32 = 0;
|
||||
var last : f32 = 0;
|
||||
|
||||
pub fn drawFPS(posX : i32, posY : i32, fpsFrame : f32, frame : i32) void {
|
||||
var color : c.Color = c.LIME;
|
||||
// var color : rl.Color = .lime; // Good FPS
|
||||
const fps : i32 = getFPS(fpsFrame, frame);
|
||||
pub fn drawFPS(posX : i32, posY : i32, fpsFrame : f32) void {
|
||||
var color : rl.Color = .lime; // Good FPS
|
||||
const fps : i32 = getFPS(fpsFrame);
|
||||
|
||||
if ((fps < 30) and (fps >= 15)) {color = c.ORANGE;} // Warning FPS
|
||||
else if (fps < 15) color = c.RED; // Low FPS
|
||||
if ((fps < 30) and (fps >= 15)) {color = .orange;} // Warning FPS
|
||||
else if (fps < 15) color = .red; // Low FPS
|
||||
|
||||
c.DrawText(c.TextFormat("%2i FPS", fps), posX, posY, 20, color);
|
||||
rl.drawText(rl.textFormat("%2i FPS", .{fps}), posX, posY, 20, color);
|
||||
}
|
||||
|
||||
pub fn getFPS(fpsFrame : f32, frame : i32) i32 {
|
||||
pub fn getFPS(fpsFrame : f32) i32 {
|
||||
var fps : i32 = 0;
|
||||
|
||||
// if we reset the window, reset the FPS info
|
||||
if (frame == 0)
|
||||
{
|
||||
average = 0;
|
||||
last = 0;
|
||||
index = 0;
|
||||
// if (frame == 0)
|
||||
// {
|
||||
// average = 0;
|
||||
// last = 0;
|
||||
// index = 0;
|
||||
|
||||
for (0..FPS_CAPTURE_FRAMES_COUNT) |i| history[i] = 0;
|
||||
}
|
||||
// for (0..FPS_CAPTURE_FRAMES_COUNT) |i| history[i] = 0;
|
||||
// }
|
||||
|
||||
if (fpsFrame == 0) return 0;
|
||||
|
||||
if ((c.GetTime() - last) > FPS_STEP)
|
||||
if ((rl.getTime() - last) > FPS_STEP)
|
||||
{
|
||||
last = @floatCast(c.GetTime());
|
||||
last = @floatCast(rl.getTime());
|
||||
index = (index + 1) % FPS_CAPTURE_FRAMES_COUNT;
|
||||
average -= history[index];
|
||||
history[index] = fpsFrame / FPS_CAPTURE_FRAMES_COUNT;
|
||||
history[index] = fpsFrame;
|
||||
average += history[index];
|
||||
}
|
||||
|
||||
fps = @intFromFloat(@round(1.0 / average));
|
||||
const meanFrameTime = average / @as(f32, @floatFromInt(FPS_CAPTURE_FRAMES_COUNT));
|
||||
|
||||
fps = @intFromFloat(1.0 / meanFrameTime);
|
||||
|
||||
return fps;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user