stoof
This commit is contained in:
parent
a56e05f1bd
commit
7edd606fee
2 changed files with 68 additions and 11 deletions
|
@ -3030,7 +3030,7 @@ extern "C"
|
||||||
fnl_state fnlCreateState()
|
fnl_state fnlCreateState()
|
||||||
{
|
{
|
||||||
fnl_state newState;
|
fnl_state newState;
|
||||||
newState.seed = 1337;
|
newState.seed = 0;
|
||||||
newState.frequency = 0.01f;
|
newState.frequency = 0.01f;
|
||||||
newState.noise_type = FNL_NOISE_OPENSIMPLEX2;
|
newState.noise_type = FNL_NOISE_OPENSIMPLEX2;
|
||||||
newState.rotation_type_3d = FNL_ROTATION_NONE;
|
newState.rotation_type_3d = FNL_ROTATION_NONE;
|
||||||
|
|
77
src/main.c
77
src/main.c
|
@ -3,26 +3,49 @@
|
||||||
#define FNL_IMPL
|
#define FNL_IMPL
|
||||||
#include "FastNoiseLite.h"
|
#include "FastNoiseLite.h"
|
||||||
|
|
||||||
#define initialScreenWidth 900
|
#define INITIAL_SCREEN_WIDTH 900
|
||||||
#define initialScreenHeight 900
|
#define INITIAL_SCREEN_HEIGHT 900
|
||||||
|
|
||||||
|
#define SCALE 64
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
// Initialization
|
// Initialization
|
||||||
//--------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
SetTraceLogLevel(LOG_ALL);
|
||||||
SetConfigFlags(FLAG_WINDOW_RESIZABLE | FLAG_VSYNC_HINT);
|
SetConfigFlags(FLAG_WINDOW_RESIZABLE | FLAG_VSYNC_HINT);
|
||||||
InitWindow(initialScreenWidth, initialScreenHeight, "raylib [core] example - basic window");
|
InitWindow(INITIAL_SCREEN_WIDTH, INITIAL_SCREEN_HEIGHT, "raylib [core] example - basic window");
|
||||||
|
|
||||||
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
|
SetTargetFPS(5); // Set our game to run at 60 frames-per-second
|
||||||
|
|
||||||
fnl_state state = fnlCreateState();
|
fnl_state state = fnlCreateState();
|
||||||
state.seed = 0;
|
state.seed = 0;
|
||||||
|
state.frequency = 1.0f / (float)SCALE;
|
||||||
state.octaves = 1;
|
state.octaves = 1;
|
||||||
state.noise_type = FNL_NOISE_PERLIN;
|
state.noise_type = FNL_NOISE_PERLIN;
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
TraceLog(LOG_INFO, TextFormat("%i", GetScreenWidth()));
|
int virtualScreenWidth = GetScreenWidth() / SCALE;
|
||||||
|
int virtualScreenHeight = GetScreenHeight() / SCALE;
|
||||||
|
float virtualRatio = (float)virtualScreenWidth / (float)virtualScreenHeight;
|
||||||
|
|
||||||
|
RenderTexture2D *target = (RenderTexture2D *)MemAlloc(sizeof(RenderTexture2D));
|
||||||
|
|
||||||
|
*target = LoadRenderTexture(virtualScreenWidth, virtualScreenHeight);
|
||||||
|
|
||||||
|
Camera2D camera = {0};
|
||||||
|
camera.zoom = 1.0f;
|
||||||
|
|
||||||
|
Rectangle sourceRec = {0.0f,
|
||||||
|
0.0f,
|
||||||
|
(float)target->texture.width,
|
||||||
|
-(float)target->texture.height};
|
||||||
|
Rectangle destRec = {-virtualRatio,
|
||||||
|
-virtualRatio,
|
||||||
|
GetScreenWidth() + (virtualRatio * 2.0f),
|
||||||
|
GetScreenHeight() + (virtualRatio * 2.0f)};
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
|
||||||
double offset = 0.0;
|
double offset = 0.0;
|
||||||
|
|
||||||
|
@ -38,6 +61,27 @@ int main(void)
|
||||||
TraceLog(LOG_INFO, TextFormat("Noisetype: %i", state.noise_type));
|
TraceLog(LOG_INFO, TextFormat("Noisetype: %i", state.noise_type));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (IsWindowResized())
|
||||||
|
{
|
||||||
|
TraceLog(LOG_DEBUG, "Resized.");
|
||||||
|
int virtualScreenWidth = GetScreenWidth() / SCALE;
|
||||||
|
int virtualScreenHeight = GetScreenHeight() / SCALE;
|
||||||
|
float virtualRatio = (float)virtualScreenWidth / (float)virtualScreenHeight;
|
||||||
|
|
||||||
|
UnloadRenderTexture(*target);
|
||||||
|
*target = LoadRenderTexture(virtualScreenWidth, virtualScreenHeight);
|
||||||
|
|
||||||
|
sourceRec = (Rectangle){0.0f,
|
||||||
|
0.0f,
|
||||||
|
(float)target->texture.width,
|
||||||
|
(float)target->texture.height};
|
||||||
|
|
||||||
|
destRec = (Rectangle){0.0f,
|
||||||
|
0.0f,
|
||||||
|
GetScreenWidth(),
|
||||||
|
GetScreenHeight()};
|
||||||
|
}
|
||||||
|
|
||||||
if (IsKeyPressed(KEY_UP))
|
if (IsKeyPressed(KEY_UP))
|
||||||
{
|
{
|
||||||
state.octaves++;
|
state.octaves++;
|
||||||
|
@ -59,26 +103,39 @@ int main(void)
|
||||||
|
|
||||||
// Draw
|
// Draw
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
BeginDrawing();
|
|
||||||
|
BeginTextureMode(*target);
|
||||||
|
|
||||||
ClearBackground(RAYWHITE);
|
ClearBackground(RAYWHITE);
|
||||||
|
|
||||||
for (int x = 0; x < GetScreenWidth(); x++)
|
for (int x = 0; x < virtualScreenWidth; x++)
|
||||||
{
|
{
|
||||||
for (int y = 0; y < GetScreenHeight(); y++)
|
for (int y = 0; y < virtualScreenHeight; y++)
|
||||||
{
|
{
|
||||||
int noise = (fnlGetNoise2D(&state, ((double)x) + offset, ((double)y) + offset / 2.0) + 1.0) / 2.0 * 255.0; //(noise2(simplexEnv, simplexGradiants, x / 64.0 + offset, y / 64.0 + offset / 2.0) + 1.0) / 2 * 255;
|
int noise = (fnlGetNoise2D(&state, ((double)x) + offset, ((double)y) + offset / 2.0) + 1.0) / 2.0 * 255.0; //(noise2(simplexEnv, simplexGradiants, x / 64.0 + offset, y / 64.0 + offset / 2.0) + 1.0) / 2 * 255;
|
||||||
|
|
||||||
DrawPixel(x, y, (Color){noise, noise, noise, 255});
|
DrawPixel(x, y, (Color){0, noise, noise, 255});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EndTextureMode();
|
||||||
|
|
||||||
|
BeginDrawing();
|
||||||
|
{
|
||||||
|
ClearBackground(RAYWHITE);
|
||||||
|
// BeginMode2D();
|
||||||
|
{
|
||||||
|
DrawTexturePro(target->texture, sourceRec, destRec, (Vector2){0.0f, 0.0f}, 0.0f, WHITE);
|
||||||
|
}
|
||||||
|
// EndMode2D();
|
||||||
|
}
|
||||||
EndDrawing();
|
EndDrawing();
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
}
|
}
|
||||||
|
|
||||||
// De-Initialization
|
// De-Initialization
|
||||||
//--------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
|
MemFree(target);
|
||||||
CloseWindow(); // Close window and OpenGL context
|
CloseWindow(); // Close window and OpenGL context
|
||||||
//--------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
Reference in a new issue