Add more configs and implement weird power map thing
This commit is contained in:
33
main.c
33
main.c
@@ -31,9 +31,13 @@
|
||||
#error "Cannot define CPOW_DTHETA and POWRATE simulataneously"
|
||||
#endif
|
||||
|
||||
#ifndef STARTSCALE
|
||||
#define STARTSCALE 1.0
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
float width, height;
|
||||
#ifdef JULIA
|
||||
#if defined(JULIA) || defined(THING)
|
||||
struct {
|
||||
float re, im;
|
||||
} julia;
|
||||
@@ -61,7 +65,7 @@ static const char *extensions[] = {
|
||||
|
||||
// Initial parameters
|
||||
static params_t params = {
|
||||
#ifdef JULIA
|
||||
#if defined(JULIA) || defined(THING)
|
||||
.julia = {
|
||||
#ifdef JULIA_C_RE
|
||||
.re = JULIA_C_RE,
|
||||
@@ -82,12 +86,12 @@ static params_t params = {
|
||||
},
|
||||
#endif
|
||||
#ifdef CPOW_DTHETA
|
||||
.cpow = { .re = 2.0, .im = 0.0 },
|
||||
.cpow = { .re = CPOW_START_RE, .im = CPOW_START_IM },
|
||||
#endif
|
||||
#ifdef POWRATE
|
||||
.zpow = 2.0,
|
||||
#endif
|
||||
.scale = 1.0,
|
||||
.scale = STARTSCALE,
|
||||
};
|
||||
|
||||
static void
|
||||
@@ -599,6 +603,7 @@ int main(void)
|
||||
vkCmdBeginRenderPass(
|
||||
cmd_buf, &render_pass_begin, VK_SUBPASS_CONTENTS_INLINE);
|
||||
|
||||
// Send parameters
|
||||
vkCmdPushConstants(
|
||||
cmd_buf, pipeline_layout, VK_SHADER_STAGE_FRAGMENT_BIT, 0,
|
||||
sizeof(params), ¶ms);
|
||||
@@ -642,25 +647,25 @@ int main(void)
|
||||
assert(result == VK_SUCCESS);
|
||||
|
||||
#ifdef JULIA_DTHETA
|
||||
double complex julia = params.julia.re + I * params.julia.im;
|
||||
julia *= julia_rotz;
|
||||
params.julia.re = (float)creal(julia);
|
||||
params.julia.im = (float)cimag(julia);
|
||||
double complex julia = params.julia.re + I * params.julia.im;
|
||||
julia *= julia_rotz;
|
||||
params.julia.re = (float)creal(julia);
|
||||
params.julia.im = (float)cimag(julia);
|
||||
#endif
|
||||
|
||||
#ifdef ZOOMRATE
|
||||
params.scale *= (1 - ZOOMRATE);
|
||||
params.scale *= (1 - ZOOMRATE);
|
||||
#endif
|
||||
|
||||
#ifdef CPOW_DTHETA
|
||||
double complex cpow = params.cpow.re + I * params.cpow.im;
|
||||
cpow *= cpow_rotz;
|
||||
params.cpow.re = (float)creal(cpow);
|
||||
params.cpow.im = (float)cimag(cpow);
|
||||
double complex cpow = params.cpow.re + I * params.cpow.im;
|
||||
cpow *= cpow_rotz;
|
||||
params.cpow.re = (float)creal(cpow);
|
||||
params.cpow.im = (float)cimag(cpow);
|
||||
#endif
|
||||
|
||||
#ifdef POWRATE
|
||||
params.zpow += POWRATE;
|
||||
params.zpow += POWRATE;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user