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.clearBackground(.sky_blue);
|
||||||
|
|
||||||
rl.beginShaderMode(font.shader);
|
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);
|
rl.gl.rlBegin(rl.gl.rl_quads);
|
||||||
|
|
||||||
const lorem = @embedFile("embeds/lorem.txt");
|
const lorem = @embedFile("embeds/lorem.txt");
|
||||||
@ -217,7 +217,7 @@ pub fn main() !void {
|
|||||||
var y : f32 = 0;
|
var y : f32 = 0;
|
||||||
var it = std.mem.splitScalar(u8, lorem, '\n');
|
var it = std.mem.splitScalar(u8, lorem, '\n');
|
||||||
while (it.next()) |line| {
|
while (it.next()) |line| {
|
||||||
vollkorn[2].render_text(
|
vollkorn[0].render_text(
|
||||||
line,
|
line,
|
||||||
rl.Vector2{ .x = 0, .y = y},
|
rl.Vector2{ .x = 0, .y = y},
|
||||||
true,
|
true,
|
||||||
@ -227,7 +227,7 @@ pub fn main() !void {
|
|||||||
true
|
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;
|
const dpi_font_linegap = font_linegap / rl.getWindowScaleDPI().y;
|
||||||
|
|
||||||
y += dpi_font_linegap;
|
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.drawText("Congrats! You created your first window!", rl.getMouseX(), rl.getMouseY(), 20, .white);
|
||||||
//rl.drawRectangleLines(0, 0, 100, 100, .red);
|
//rl.drawRectangleLines(0, 0, 100, 100, .red);
|
||||||
misc.drawFPS(0, 0, frame_time, frame);
|
misc.drawFPS(0, 0, frame_time);
|
||||||
|
|
||||||
//elf.draw();
|
//elf.draw();
|
||||||
|
|
||||||
@ -424,6 +424,8 @@ pub fn main() !void {
|
|||||||
rl.endDrawing();
|
rl.endDrawing();
|
||||||
|
|
||||||
rl.swapScreenBuffer();
|
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_CAPTURE_FRAMES_COUNT : i32 = 30; // 30 captures
|
||||||
const FPS_AVERAGE_TIME_SECONDS : f32 = 0.5; // 500 milliseconds
|
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 average : f32 = 0;
|
||||||
var last : f32 = 0;
|
var last : f32 = 0;
|
||||||
|
|
||||||
pub fn drawFPS(posX : i32, posY : i32, fpsFrame : f32, frame : i32) void {
|
pub fn drawFPS(posX : i32, posY : i32, fpsFrame : f32) void {
|
||||||
var color : c.Color = c.LIME;
|
var color : rl.Color = .lime; // Good FPS
|
||||||
// var color : rl.Color = .lime; // Good FPS
|
const fps : i32 = getFPS(fpsFrame);
|
||||||
const fps : i32 = getFPS(fpsFrame, frame);
|
|
||||||
|
|
||||||
if ((fps < 30) and (fps >= 15)) {color = c.ORANGE;} // Warning FPS
|
if ((fps < 30) and (fps >= 15)) {color = .orange;} // Warning FPS
|
||||||
else if (fps < 15) color = c.RED; // Low 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;
|
var fps : i32 = 0;
|
||||||
|
|
||||||
// if we reset the window, reset the FPS info
|
// if we reset the window, reset the FPS info
|
||||||
if (frame == 0)
|
// if (frame == 0)
|
||||||
{
|
// {
|
||||||
average = 0;
|
// average = 0;
|
||||||
last = 0;
|
// last = 0;
|
||||||
index = 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 (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;
|
index = (index + 1) % FPS_CAPTURE_FRAMES_COUNT;
|
||||||
average -= history[index];
|
average -= history[index];
|
||||||
history[index] = fpsFrame / FPS_CAPTURE_FRAMES_COUNT;
|
history[index] = fpsFrame;
|
||||||
average += history[index];
|
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;
|
return fps;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user