ugBASIC 1.18
An isomorphic BASIC language compiler for retrocomputers
Loading...
Searching...
No Matches
fade.c
Go to the documentation of this file.
1/*****************************************************************************
2 * ugBASIC - an isomorphic BASIC language compiler for retrocomputers *
3 *****************************************************************************
4 * Copyright 2021-2024 Marco Spedaletti (asimov@mclink.it)
5 *
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 *----------------------------------------------------------------------------
18 * Concesso in licenza secondo i termini della Licenza Apache, versione 2.0
19 * (la "Licenza"); è proibito usare questo file se non in conformità alla
20 * Licenza. Una copia della Licenza è disponibile all'indirizzo:
21 *
22 * http://www.apache.org/licenses/LICENSE-2.0
23 *
24 * Se non richiesto dalla legislazione vigente o concordato per iscritto,
25 * il software distribuito nei termini della Licenza è distribuito
26 * "COSÌ COM'È", SENZA GARANZIE O CONDIZIONI DI ALCUN TIPO, esplicite o
27 * implicite. Consultare la Licenza per il testo specifico che regola le
28 * autorizzazioni e le limitazioni previste dalla medesima.
29 ****************************************************************************/
30
31/****************************************************************************
32 * INCLUDE SECTION
33 ****************************************************************************/
34
35#include "../../../ugbc.h"
36
37/****************************************************************************
38 * CODE SECTION
39 ****************************************************************************/
40
41#if defined(__c64__) || defined(__c64reu__) || defined(__c128__)
42
46
47/* <usermanual>
48@keyword FADE
49
50@english
51
52This instruction allow you to perform a "fade". The fade, in graphic terms, consists of gradually passing
53from one image or color to another. Fade to black implies a gradual transition to the color black (RGB: 0, 0, 0).
54To implement this transition, ugBASIC will progressively vary the color values of the pixels on the screen. The
55function takes the desired fade time in ticks or milliseconds (it will be rouded to the next tick). The accuracy
56and smoothness of the fade depends on the number of colors available in the palette and the number of steps.
57
58@italian
59
60Questa istruzione consente di eseguire una "dissolvenza". La dissolvenza, in termini grafici, consiste
61nel passaggio graduale da un'immagine o colore a un altro. La dissolvenza al nero implica una transizione
62graduale al colore nero (RGB: 0, 0, 0). Per implementare questa transizione, ugBASIC varierà progressivamente
63i valori di colore dei pixel sullo schermo. La funzione impiega il tempo di dissolvenza desiderato in
64ticks o millisecondi (che saranno arrotondati al tick più vicino). La precisione e la fluidità della dissolvenza
65dipendono dal numero di colori disponibili nella tavolozza e dal numero di passaggi.
66
67@syntax FADE time [TICKS|MILLISECONDS|MS]
68
69@example FADE 1000 MS
70
71@target c64
72@target c128
73@target c64reu
74</usermanual> */
75
76void fade_ticks_var( Environment * _environment, char * _ticks ) {
77
78 Variable * ticks = variable_div_const( _environment, variable_retrieve_or_define( _environment, _ticks, VT_WORD, 0 )->name, 8, NULL );
79
80 vic2_fade( _environment, _ticks );
81
82}
83
84void fade_milliseconds_var( Environment * _environment, char * _millliseconds ) {
85
86 Variable * realTiming = variable_div_const( _environment, variable_retrieve_or_define( _environment, _millliseconds, VT_WORD, 0 )->name, 20 * 8, NULL );
87
88 vic2_fade( _environment, realTiming->realName );
89
90}
91
92#endif
Variable * variable_retrieve_or_define(Environment *_environment, char *_name, VariableType _type, int _value)
Variable * variable_div_const(Environment *_environment, char *_source, int _destination, char *_remainder)
char * name
Definition _optimizer.c:672
void fade_milliseconds_var(Environment *_environment, char *_millliseconds)
Definition fade.c:51
void fade_ticks_var(Environment *_environment, char *_ticks)
Emit code for FADE.
Definition fade.c:47
char * realName
Definition ugbc.h:982
struct _Variable Variable
Structure of a single variable.
struct _Environment Environment
Structure of compilation environment.
@ VT_WORD
Definition ugbc.h:455
void vic2_fade(Environment *_environment, char *_ticks)
Definition vic2.c:4432