simavr
11 years agoMerge pull request #7 from mali/working
Michel Pollet [Sun, 4 Nov 2012 17:51:45 +0000 (09:51 -0800)]
Merge pull request #7 from mali/working

Makefile : fix cleaning rules

11 years agoMakefile : fix cleaning rules
Laurent Navet [Mali] [Sun, 4 Nov 2012 16:13:28 +0000 (16:13 +0000)]
Makefile : fix cleaning rules

in order to leave the src tree as clean as before a build
+ add rm -f of autogenerated sim_core_config.h & sim_core_decl.h
  in simavr/Makefile
+ add rm *.hex in example/board_*/Makefile

11 years agoMakefile: Fix git tag issues
Michel Pollet [Tue, 30 Oct 2012 15:10:42 +0000 (15:10 +0000)]
Makefile: Fix git tag issues

+ Pick the correct tag for the version number
+ Do not fail if git is not there
+ Add the version to the config file

Signed-off-by: Michel Pollet <buserror@gmail.com>
11 years agoMakefile: Introduce a release build
Michel Pollet [Tue, 30 Oct 2012 15:09:37 +0000 (15:09 +0000)]
Makefile: Introduce a release build

make RELEASE=1 will use rpath-link to link the executable,
preventing simavr build path to be referenced. This requires
that simavr gets installed for it to work

Signed-off-by: Michel Pollet <buserror@gmail.com>
11 years agousb: Made the usb example optional
Michel Pollet [Tue, 30 Oct 2012 11:30:21 +0000 (11:30 +0000)]
usb: Made the usb example optional

Downloading extra sources is against debian policy and was
a blocker to get simavr in debian. Made the board_usb example
optional, it will require an explicit make.

Signed-off-by: Michel Pollet <buserror@gmail.com>
11 years agoMakefiles: Add manual and a global doc target
Jakob Gruber [Thu, 25 Oct 2012 09:40:05 +0000 (11:40 +0200)]
Makefiles: Add manual and a global doc target

Manual generation is now included in the doc/Makefile. Additionally,
a doc target has been added to the global Makefile.

11 years agodoc: Add simavr manual
Jakob Gruber [Thu, 25 Oct 2012 09:38:01 +0000 (11:38 +0200)]
doc: Add simavr manual

This is an excerpt of the bachelor's thesis "qsimavr: Graphical
Simulation of an AVR Processor and Periphery" by Jakob Gruber. The full
thesis is available at https://github.com/schuay/bachelors_thesis.

11 years agomisc: Point to correct simavr include dirs
Jakob Gruber [Mon, 10 Sep 2012 09:54:16 +0000 (11:54 +0200)]
misc: Point to correct simavr include dirs

11 years agomisc: Move avr_mcu_section.h to sim/avr
Jakob Gruber [Mon, 10 Sep 2012 10:22:57 +0000 (12:22 +0200)]
misc: Move avr_mcu_section.h to sim/avr

Since sim_elf.h includes avr_mcu_section.h, it needs to reference
a path which works both during simavr builds, and compilation of
external programs including sim_elf.h. Adding the avr/ subdirectory
to pkg-config cflags is not desired, to make sure it's clear that header
is shared between the sim and the firmware.

11 years agoMakefiles: Remove executable bit from headers
Jakob Gruber [Mon, 10 Sep 2012 09:57:41 +0000 (11:57 +0200)]
Makefiles: Remove executable bit from headers

11 years agoMakefiles: Separate simavr.pc and simavr-avr.pc
Jakob Gruber [Mon, 10 Sep 2012 09:38:23 +0000 (11:38 +0200)]
Makefiles: Separate simavr.pc and simavr-avr.pc

According to http://people.freedesktop.org/~dbn/pkg-config-guide.html,
"each pkg-config file is best used to describe a single library, so each
package should have at least as many pkg-config files as they do
installed libraries."

11 years agoMakefiles: Use PREFIX instead of DESTDIR in simavr.pc
Jakob Gruber [Mon, 10 Sep 2012 09:29:35 +0000 (11:29 +0200)]
Makefiles: Use PREFIX instead of DESTDIR in simavr.pc

This is needed when DESTDIR does not equal the actual intended
destination (this usually occurs when building packages for
distribution).

An example make invocation:

make DESTDIR=pkg/usr PREFIX=/usr install

11 years agocore: Deinitialize GDB in avr_terminate()
Jakob Gruber [Mon, 10 Sep 2012 08:54:00 +0000 (10:54 +0200)]
core: Deinitialize GDB in avr_terminate()

This is relevant when running multiple simavr sessions in a single
program.

11 years agocores: Use correct extint control register
Jakob Gruber [Fri, 31 Aug 2012 08:41:03 +0000 (10:41 +0200)]
cores: Use correct extint control register

The atmega1280/atmega1281/atmega128/90usb162
have two external interrupt control registers;
EICRA for ISC[0-3]x, and EICRB for ISC[4-7]x.

11 years agoRevert "examples: hd44780 responds on falling edge of E pin"
Jakob Gruber [Fri, 31 Aug 2012 07:39:14 +0000 (09:39 +0200)]
Revert "examples: hd44780 responds on falling edge of E pin"

This reverts commit fddb2a02e9feadaefaf690b07a69a1556fb96fd1.

The hd44780 was misbehaving and bisecting ended up at this commit.

11 years agovcd: Made the trace buffer dynamic
Michel Pollet [Fri, 31 Aug 2012 07:42:34 +0000 (08:42 +0100)]
vcd: Made the trace buffer dynamic

Made the trade buffer growable, to accomadate busy tracers
Also converted the traces to AVR_LOG in that bit.

Signed-off-by: Michel Pollet <buserror@gmail.com>
11 years agoioport: Restore PIN to PORT values when DDR is set to output
Jakob Gruber [Wed, 29 Aug 2012 12:16:59 +0000 (14:16 +0200)]
ioport: Restore PIN to PORT values when DDR is set to output

11 years agoioport: Use IRQ_FLAG_FILTERED instead of manual filtering
Jakob Gruber [Thu, 23 Aug 2012 11:13:25 +0000 (13:13 +0200)]
ioport: Use IRQ_FLAG_FILTERED instead of manual filtering

Manual filtering could cause us to miss pin changes when data
is written to PINs while the port is set to input mode (and thus
the PORT register is not updated).

11 years agovcd_file: Update comment to reflect correct time units
Jakob Gruber [Tue, 28 Aug 2012 13:46:59 +0000 (15:46 +0200)]
vcd_file: Update comment to reflect correct time units

11 years agotimer: Avoid infinite cycle timer on TCNT write
Jakob Gruber [Thu, 23 Aug 2012 08:57:21 +0000 (10:57 +0200)]
timer: Avoid infinite cycle timer on TCNT write

In some situations, it was possible to enter an infinite cycle timer
loop. In avr_timer_tcnt_write, the tov cycle timer registration is not
protected and can register a timer with p->tov_cycles == 0.

The following atmega1280 program demonstrates this issue:

int main() {

TCCR1A = 0;
TCCR1B = (1<<WGM12) | (1<<ICES1);
OCR1B = OCR1A = 960;

/* Start */
TCNT1 = 0;
TCCR1B |= (1<<CS11);

/* Stop */
TCCR1B &= ~(1<<CS11);
TIFR1 |= (1<<OCF1A) | (1<<OCF1B);

/* Start */
TCNT1 = 0; /**< Registers timer with tov_cycles == 0. */
TCCR1B |= (1<<CS11);

while (1) ;
return 0;
}

11 years agoio: Convert logging to AVR_LOG()
Jakob Gruber [Thu, 2 Aug 2012 09:08:51 +0000 (11:08 +0200)]
io: Convert logging to AVR_LOG()

11 years agointerrupts: Convert logging to AVR_LOG()
Jakob Gruber [Thu, 2 Aug 2012 09:08:34 +0000 (11:08 +0200)]
interrupts: Convert logging to AVR_LOG()

11 years agogdb: Convert logging to AVR_LOG()
Jakob Gruber [Thu, 2 Aug 2012 09:08:13 +0000 (11:08 +0200)]
gdb: Convert logging to AVR_LOG()

11 years agoelf: Convert logging to AVR_LOG()
Jakob Gruber [Thu, 2 Aug 2012 09:07:59 +0000 (11:07 +0200)]
elf: Convert logging to AVR_LOG()

11 years agocycle_timers: Convert logging to AVR_LOG()
Jakob Gruber [Thu, 2 Aug 2012 09:07:34 +0000 (11:07 +0200)]
cycle_timers: Convert logging to AVR_LOG()

11 years agocore: Convert logging to AVR_LOG()
Jakob Gruber [Thu, 2 Aug 2012 09:07:21 +0000 (11:07 +0200)]
core: Convert logging to AVR_LOG()

11 years agowatchdog: Convert logging to AVR_LOG()
Jakob Gruber [Thu, 2 Aug 2012 08:49:06 +0000 (10:49 +0200)]
watchdog: Convert logging to AVR_LOG()

11 years agousb: Convert logging to AVR_LOG()
Jakob Gruber [Thu, 2 Aug 2012 08:46:20 +0000 (10:46 +0200)]
usb: Convert logging to AVR_LOG()

A couple of these functions did not have references to avr_t, so this is
incomplete.

11 years agouart: Convert logging to AVR_LOG()
Jakob Gruber [Thu, 2 Aug 2012 08:45:49 +0000 (10:45 +0200)]
uart: Convert logging to AVR_LOG()

UART stdout output was left as is.

11 years agolin: Convert logging to AVR_LOG()
Jakob Gruber [Thu, 2 Aug 2012 08:45:30 +0000 (10:45 +0200)]
lin: Convert logging to AVR_LOG()

11 years agoflash: Convert logging to AVR_LOG()
Jakob Gruber [Thu, 2 Aug 2012 08:45:11 +0000 (10:45 +0200)]
flash: Convert logging to AVR_LOG()

11 years agoeeprom: Convert logging to AVR_LOG()
Jakob Gruber [Thu, 2 Aug 2012 08:33:06 +0000 (10:33 +0200)]
eeprom: Convert logging to AVR_LOG()

11 years agobitbang: Convert logging to AVR_LOG()
Jakob Gruber [Thu, 2 Aug 2012 08:30:55 +0000 (10:30 +0200)]
bitbang: Convert logging to AVR_LOG()

11 years agoadc: Convert logging to AVR_LOG()
Jakob Gruber [Thu, 2 Aug 2012 08:29:51 +0000 (10:29 +0200)]
adc: Convert logging to AVR_LOG()

11 years agotimer: Remove trace_flags
Jakob Gruber [Thu, 2 Aug 2012 08:05:02 +0000 (10:05 +0200)]
timer: Remove trace_flags

All uses have been converted to AVR_LOG().

11 years agotimer: Convert to logging to AVR_LOG()
Jakob Gruber [Wed, 1 Aug 2012 14:30:09 +0000 (16:30 +0200)]
timer: Convert to logging to AVR_LOG()

11 years agocore: Introduce a logging macro AVR_LOG()
Jakob Gruber [Thu, 2 Aug 2012 07:49:34 +0000 (09:49 +0200)]
core: Introduce a logging macro AVR_LOG()

This works in conjunction with avr->log to tune out messages we are not
interested in. LOG_ERROR is the default level.

11 years agorun_avr: Add -v argument to raise verbosity level
Jakob Gruber [Thu, 2 Aug 2012 07:41:05 +0000 (09:41 +0200)]
run_avr: Add -v argument to raise verbosity level

Pass it more than once to raise it further. This works better with the
standard conventions, which would allow passing -vvv (instead of -v -v
-v). Unfortunately, this does not work here.

The type of avr->log has been altered to accomodate values up to 3.

11 years agocores: Move static to front of declaration
Jakob Gruber [Sat, 4 Aug 2012 18:10:18 +0000 (20:10 +0200)]
cores: Move static to front of declaration

This fixes the two -Wold-style-declaration warnings reported by gcc with
-Wextra.

11 years agomega1280: Initialize UART 2 and 3
Jakob Gruber [Sat, 4 Aug 2012 13:35:24 +0000 (15:35 +0200)]
mega1280: Initialize UART 2 and 3

These definitions already existed but were not initialized.

11 years agomega1280: Add missing timers 4 and 5
Jakob Gruber [Sat, 4 Aug 2012 13:10:05 +0000 (15:10 +0200)]
mega1280: Add missing timers 4 and 5

These are 16-bit timers similar to Timer1 and Timer3.

11 years agocore: Increase MAX_IOs for atmega1280
Jakob Gruber [Sat, 4 Aug 2012 13:28:06 +0000 (15:28 +0200)]
core: Increase MAX_IOs for atmega1280

The atmega1280 uses IO registers up to an address of 0x136.
Set MAX_IOs to (0x136 - 0x20 + 0x01) = 279.

11 years agocore: Don't sleep with pending interrupts
Jakob Gruber [Wed, 1 Aug 2012 15:01:37 +0000 (17:01 +0200)]
core: Don't sleep with pending interrupts

This avoids an issue in which we would incorrectly enter a state in
which the CPU was sleeping and interrupts were disabled. It occurred
when an interrupt was raised and a SLEEP instruction processed before
the interrupt could be serviced (due to pending wait).

There are several disadvantages: if somebody adds new code which
switches the CPU to sleeping, there's a good chance of them forgetting
to add this check. Preventing sleep even if the interrupt is masked is
probably harmless but incorrect. Finally, on a real AVR it _is_ possible
to trigger an interrupt and then go to sleep in the next instruction
before the interrupt is serviced.

I'd actually prefer fixing this by moving the CPU interrupt wakeup from
avr_raise_interrupt() to avr_service_interrupts(), but that requires
further changes to avoid sleeping during avr->run() while an interrupt
is about to be serviced.

11 years agocores: Set raise_sticky in TWI interrupt vectors
Jakob Gruber [Tue, 31 Jul 2012 10:46:59 +0000 (12:46 +0200)]
cores: Set raise_sticky in TWI interrupt vectors

11 years agointerrupts: Introduce raise_sticky flag
Jakob Gruber [Tue, 31 Jul 2012 10:43:46 +0000 (12:43 +0200)]
interrupts: Introduce raise_sticky flag

If set, the raise bit is not cleared in avr_clear_interrupt. This
corresponds to the hardware not clearing the interrupt flag when
executing the interrupt routine.

The only known example of this is the TWI Interrupt Flag TWINT.

11 years agointerrupts: Do not clear raised bit twice
Jakob Gruber [Tue, 31 Jul 2012 10:42:59 +0000 (12:42 +0200)]
interrupts: Do not clear raised bit twice

avr_regbit_clear is already called in avr_clear_interrupt.

11 years agotwi: Correct swapped twi irq names
Jakob Gruber [Tue, 31 Jul 2012 10:22:22 +0000 (12:22 +0200)]
twi: Correct swapped twi irq names

11 years agointerrupts: Typo correction (pooling -> polling)
Jakob Gruber [Tue, 31 Jul 2012 08:45:07 +0000 (10:45 +0200)]
interrupts: Typo correction (pooling -> polling)

11 years agomisc: Consistent include guards in headers
Jakob Gruber [Fri, 27 Jul 2012 11:58:13 +0000 (13:58 +0200)]
misc: Consistent include guards in headers

Changed all include guard defines to a consistent form and added them if
missing.

11 years agomisc: Add extern "C" blocks to headers
Jakob Gruber [Fri, 27 Jul 2012 11:46:28 +0000 (13:46 +0200)]
misc: Add extern "C" blocks to headers

Most headers already had these. This commit adds them where they weren't
included yet.

11 years agosimavr: Do not call avr_terminate in run callbacks
Jakob Gruber [Thu, 26 Jul 2012 11:05:21 +0000 (13:05 +0200)]
simavr: Do not call avr_terminate in run callbacks

Neither run_avr nor the examples expect avr_terminate to be called by
simavr itself.
This also caused issues for cleanup code (such as IRQ disconnections)
that did not know if avr_terminate had already been called or not.

11 years agoirq: Print errors to stderr
Jakob Gruber [Thu, 26 Jul 2012 10:46:49 +0000 (12:46 +0200)]
irq: Print errors to stderr

Trying to (dis)connect an invalid IRQ is an error. Note that the
incorrect function name printed in avr_unconnect_irq has been corrected.

11 years agotwi: Move avr_twi_irq_msg to avr_twi.c
Jakob Gruber [Thu, 26 Jul 2012 09:23:33 +0000 (11:23 +0200)]
twi: Move avr_twi_irq_msg to avr_twi.c

This fixes inclusion of avr_twi.h into C++ files.

11 years agointerrupts: Don't wake up if not sleeping
Jakob Gruber [Mon, 23 Jul 2012 16:46:48 +0000 (18:46 +0200)]
interrupts: Don't wake up if not sleeping

This caused the CPU to wake up even if it was explicitly set to
cpu_Stopped.

11 years agoMakefile: Create .deb files using fpm
Michel Pollet [Wed, 25 Jul 2012 08:24:39 +0000 (09:24 +0100)]
Makefile: Create .deb files using fpm

Handy way of creating debian packages quickly

Signed-off-by: Michel Pollet <buserror@gmail.com>
11 years agoexamples: Correct instructions for timer_64led example
Jakob Gruber [Fri, 20 Jul 2012 19:52:05 +0000 (21:52 +0200)]
examples: Correct instructions for timer_64led example

11 years agorun_avr: Abort if firmware could not be read
Jakob Gruber [Fri, 20 Jul 2012 12:47:06 +0000 (14:47 +0200)]
run_avr: Abort if firmware could not be read

Otherwise, simavr continues and tries to process whichever random memory
content is located in the flash memory section even when the file could
not be read.

11 years agoexamples: hd44780 responds on falling edge of E pin
Jakob Gruber [Fri, 20 Jul 2012 12:19:48 +0000 (14:19 +0200)]
examples: hd44780 responds on falling edge of E pin

The example itself works both ways, but the actual HD44780 chip
processes data on the falling edge - see the data sheet.

11 years agoexamples: Fix frequency of ac_input signal
Jakob Gruber [Thu, 19 Jul 2012 22:10:39 +0000 (00:10 +0200)]
examples: Fix frequency of ac_input signal

The comment in ac_input.h specifies 50 Hz, but it was actually 500 Hz.

This off-by-one-zero error probably went unnoticed because of inaccurate
sleep handling (which was fixed in the previous commit).

11 years agosimavr: Improved accuracy of sleep durations
Jakob Gruber [Thu, 19 Jul 2012 21:37:02 +0000 (23:37 +0200)]
simavr: Improved accuracy of sleep durations

This commit solves (or at least improves) an issue that occurs when
short sleep times are requested in avr_callback_sleep_*. The operating
system cannot accurately handle short sleep requests, and sending many
short requests takes significantly longer than requesting the equivalent
time in longer bursts. This can be observed by running the board_hd77480
example - the counter is much slower when vcd recording is turned on
(= short sleep requests) than when it is turned off (= long sleep
requests).

We improve this situation by accumulating sleep requests until a certain
minimum count of pending usecs is reached which can be handled somewhat
accurately (200 microseconds worked well for me).

11 years agogdb: Read/write SREG values correctly
Jakob Gruber [Wed, 18 Jul 2012 10:37:50 +0000 (12:37 +0200)]
gdb: Read/write SREG values correctly

Accessing SREG through gdb seems to have been broken since SREG is no
longer synthesized at each instruction (2f67001d). As a quick fix, make
SREG accessors public and use them in sim_gdb.

Note that invalid avr->sreg values no longer trigger the CRASH macro.

11 years agotests: Correct expected output of atmega88_uart_echo
Jakob Gruber [Wed, 18 Jul 2012 08:16:14 +0000 (10:16 +0200)]
tests: Correct expected output of atmega88_uart_echo

Carriage return generation was added back to the file handler in
a26a2e43fc4b547090f3069e121713702593261d. Since the string is actually
passed through uart_putchar twice, the received string has a duplicate
'\r' character.

11 years agoMerge pull request #4 from schuay/markdown_syntax
Michel Pollet [Mon, 16 Jul 2012 17:21:03 +0000 (10:21 -0700)]
Merge pull request #4 from schuay/markdown_syntax

Markdown syntax

11 years agomisc: Update repository URL in README
Jakob Gruber [Mon, 16 Jul 2012 17:05:55 +0000 (19:05 +0200)]
misc: Update repository URL in README

11 years agomisc: Fix broken links in README.md
Jakob Gruber [Mon, 16 Jul 2012 17:00:31 +0000 (19:00 +0200)]
misc: Fix broken links in README.md

11 years agomisc: Github markdown uses indentation to mark code blocks
Jakob Gruber [Mon, 16 Jul 2012 16:57:51 +0000 (18:57 +0200)]
misc: Github markdown uses indentation to mark code blocks

11 years agomisc: Minor wording changes in README.md
Jakob Gruber [Mon, 16 Jul 2012 17:08:35 +0000 (19:08 +0200)]
misc: Minor wording changes in README.md

11 years agomisc: Github markdown uses underscores to italicize words
Jakob Gruber [Mon, 16 Jul 2012 16:47:49 +0000 (18:47 +0200)]
misc: Github markdown uses underscores to italicize words

11 years agoMerge pull request #2 from schuay/watchpoints
Michel Pollet [Mon, 16 Jul 2012 16:07:32 +0000 (09:07 -0700)]
Merge pull request #2 from schuay/watchpoints

Watchpoints

11 years agoMerge pull request #3 from schuay/not_known
Michel Pollet [Mon, 16 Jul 2012 14:35:41 +0000 (07:35 -0700)]
Merge pull request #3 from schuay/not_known

misc: Fix confusing typo in error message

11 years agomisc: Fix confusing typo in error message
Jakob Gruber [Mon, 16 Jul 2012 14:30:06 +0000 (16:30 +0200)]
misc: Fix confusing typo in error message

11 years agogdb: Use early termination in gdb_watch_find*
Jakob Gruber [Mon, 16 Jul 2012 13:32:56 +0000 (15:32 +0200)]
gdb: Use early termination in gdb_watch_find*

11 years agogdb: Implemented watchpoint handling
Jakob Gruber [Fri, 13 Jul 2012 12:22:51 +0000 (14:22 +0200)]
gdb: Implemented watchpoint handling

Per data access, we never signal more than one watchpoint. Possible
scenarios are several watchpoints at the same address (for example
WATCH_ACCESS and WATCH_WRITE) or overlapping watchpoint ranges. This is
not completely correct.

11 years agogdb: Store watchpoints in avr_gdb_t
Jakob Gruber [Fri, 13 Jul 2012 14:26:13 +0000 (16:26 +0200)]
gdb: Store watchpoints in avr_gdb_t

For now, quietly assume that all watchpoints are located in SRAM (with
0x800000 offset).

11 years agogdb: Prepare watchpoints_t data structure
Jakob Gruber [Fri, 13 Jul 2012 14:25:27 +0000 (16:25 +0200)]
gdb: Prepare watchpoints_t data structure

In preparation for the watchpoint implementation define an
avr_gdb_watchpoints_t struct to handle both. The struct is only accessed
through gdb_watch_* functions, therefore changing its internals should
be easy.

Note that this implementation cannot handle different watchpoints at the
same address with a different size.

The avr_gdb_watch_type enum is public and will be used in sim_core.c in
a follow-up commit.

11 years agoMerge pull request #1 from schuay/master
Michel Pollet [Fri, 13 Jul 2012 09:19:21 +0000 (02:19 -0700)]
Merge pull request #1 from schuay/master

Typos, mega1280 ADC channels

11 years agomega1280: Added upper ADC differential channels
Jakob Gruber [Thu, 12 Jul 2012 12:56:34 +0000 (14:56 +0200)]
mega1280: Added upper ADC differential channels

11 years agomisc: Fixed a couple of typos in comments
Jakob Gruber [Wed, 11 Jul 2012 22:14:15 +0000 (00:14 +0200)]
misc: Fixed a couple of typos in comments

11 years agosimavr: Makefile tweaks
Michel Pollet [Sat, 16 Jun 2012 10:02:18 +0000 (11:02 +0100)]
simavr: Makefile tweaks

Added install target too

Signed-off-by: Michel Pollet <buserror@gmail.com>
11 years agoMakefile: Add a debug log
Michel Pollet [Sat, 16 Jun 2012 08:42:26 +0000 (09:42 +0100)]
Makefile: Add a debug log

make V=1 will create a /tmp/simavr_conf.log to help find why
the cores won't compile

Signed-off-by: Michel Pollet <buserror@gmail.com>
11 years agolibc3: Deleted
Michel Pollet [Sat, 16 Jun 2012 08:41:35 +0000 (09:41 +0100)]
libc3: Deleted

Following the reprap board project on github

Signed-off-by: Michel Pollet <buserror@gmail.com>
11 years agoreprap: Deleted example board
Michel Pollet [Sat, 16 Jun 2012 08:40:08 +0000 (09:40 +0100)]
reprap: Deleted example board

This as become a project in itself, it moves to:
https://github.com/buserror-uk/simreprap.git

Signed-off-by: Michel Pollet <buserror@gmail.com>
11 years agoreprap: Added shadow mapping
Michel Pollet [Sat, 16 Jun 2012 08:15:09 +0000 (09:15 +0100)]
reprap: Added shadow mapping

Going to split this project into another one too..

Signed-off-by: Michel Pollet <buserror@gmail.com>
11 years agolibc3: Make & config tweaks
Michel Pollet [Sat, 16 Jun 2012 08:14:12 +0000 (09:14 +0100)]
libc3: Make & config tweaks

Now platform independent config headers
Also added a license

Signed-off-by: Michel Pollet <buserror@gmail.com>
11 years agoc3gl: Made c3gl_program_load public
Michel Pollet [Sat, 16 Jun 2012 08:12:43 +0000 (09:12 +0100)]
c3gl: Made c3gl_program_load public

Useful to reload shaders

Signed-off-by: Michel Pollet <buserror@gmail.com>
11 years agoc3gl_fbo: added depth texture
Michel Pollet [Sat, 16 Jun 2012 08:10:45 +0000 (09:10 +0100)]
c3gl_fbo: added depth texture

... which is different from the depth renderbuffer

Signed-off-by: Michel Pollet <buserror@gmail.com>
11 years agoc3program: Include digits in uniform names
Michel Pollet [Sat, 16 Jun 2012 08:09:45 +0000 (09:09 +0100)]
c3program: Include digits in uniform names

Somehow they were missing

Signed-off-by: Michel Pollet <buserror@gmail.com>
11 years agoc3context: Calculate the view projection matrix
Michel Pollet [Sat, 16 Jun 2012 08:09:13 +0000 (09:09 +0100)]
c3context: Calculate the view projection matrix

Turns out everything was there to do it

Signed-off-by: Michel Pollet <buserror@gmail.com>
11 years agoc3camera: Added a field-of-view
Michel Pollet [Sat, 16 Jun 2012 08:08:25 +0000 (09:08 +0100)]
c3camera: Added a field-of-view

For calculating perspective matrix

11 years agoreprap: Updated to reflects changes to libc3
Michel Pollet [Fri, 15 Jun 2012 08:23:48 +0000 (09:23 +0100)]
reprap: Updated to reflects changes to libc3

New fbo layer, lights and so on

11 years agoc3gl_fbo: New bits
Michel Pollet [Fri, 15 Jun 2012 08:22:58 +0000 (09:22 +0100)]
c3gl_fbo: New bits

Implement the framebuffer objects. It doesn't cover all the cases
but it'll help for now.

Signed-off-by: Michel Pollet <buserror@gmail.com>
11 years agoc3gl: Implemements lights
Michel Pollet [Fri, 15 Jun 2012 08:21:44 +0000 (09:21 +0100)]
c3gl: Implemements lights

Handles (some) fo the light parameters

Signed-off-by: Michel Pollet <buserror@gmail.com>
11 years agoc3texture: Added a resize() function
Michel Pollet [Fri, 15 Jun 2012 08:21:06 +0000 (09:21 +0100)]
c3texture: Added a resize() function

Changes the size of the display quad

Signed-off-by: Michel Pollet <buserror@gmail.com>
11 years agoc3program: can specify uniform order
Michel Pollet [Fri, 15 Jun 2012 08:20:33 +0000 (09:20 +0100)]
c3program: can specify uniform order

By passing an array of names, these will occupy the uniform
array first, before the parsing phase populates the list

Signed-off-by: Michel Pollet <buserror@gmail.com>
11 years agoc3object: Implements 'hidden' objects
Michel Pollet [Fri, 15 Jun 2012 08:19:05 +0000 (09:19 +0100)]
c3object: Implements 'hidden' objects

Objects and geometry can be hidden from specific c3context_views
using a bitfield

Signed-off-by: Michel Pollet <buserror@gmail.com>
11 years agoc3geometry: Added a set_dirty() function
Michel Pollet [Fri, 15 Jun 2012 08:17:47 +0000 (09:17 +0100)]
c3geometry: Added a set_dirty() function

Also dirties parent object

Signed-off-by: Michel Pollet <buserror@gmail.com>
11 years agoc3context: Make sure lights are 'drawn' first
Michel Pollet [Fri, 15 Jun 2012 08:17:07 +0000 (09:17 +0100)]
c3context: Make sure lights are 'drawn' first

Make sure the light pseudo geometries are always
at the top of the list

Signed-off-by: Michel Pollet <buserror@gmail.com>
11 years agoc3light: New bit
Michel Pollet [Fri, 15 Jun 2012 08:16:12 +0000 (09:16 +0100)]
c3light: New bit

Records lights position/type and can be carried around
in the geometry, transformed etc.

Signed-off-by: Michel Pollet <buserror@gmail.com>
11 years agoc3gl: Implemented buffer objects and vertex array objects
Michel Pollet [Wed, 13 Jun 2012 17:17:12 +0000 (18:17 +0100)]
c3gl: Implemented buffer objects and vertex array objects

Supports vertex objects. Still need support for updating them

Signed-off-by: Michel Pollet <buserror@gmail.com>
11 years agoc3algebra: Added ortho matrices
Michel Pollet [Wed, 13 Jun 2012 17:15:58 +0000 (18:15 +0100)]
c3algebra: Added ortho matrices

Including screen oriented ones

Signed-off-by: Michel Pollet <buserror@gmail.com>