Commit Graph

12 Commits

Author SHA1 Message Date
Felipe Magno de Almeida b5d46fb7c4 eina: Rename EAPI macro to EINA_API in Eina library
Patch from a series of patches to rename EAPI symbols to specific
library DSOs.

EAPI was designed to be able to pass
```__attribute__ ((visibility ("default")))``` for symbols with
GCC, which would mean that even if -fvisibility=hidden was used
when compiling the library, the needed symbols would get exported.

MSVC __almost__ works like GCC (or mingw) in which you can
declare everything as export and it will just work (slower, but
it will work). But there's a caveat: global variables will not
work the same way for MSVC, but works for mingw and GCC.

For global variables (as opposed to functions), MSVC requires
correct DSO visibility for MSVC: instead of declaring a symbol as
export for everything, you need to declare it as import when
importing from another DSO and export when defining it locally.

With current EAPI definitions, we get the following example
working in mingw and MSVC (observe it doesn't define any global
variables as exported symbols).

Example 1:
dll1:
```
EAPI void foo(void);

EAPI void bar()
{
  foo();
}
```
dll2:
```
EAPI void foo()
{
  printf ("foo\n");
}
```

This works fine with API defined as __declspec(dllexport) in both
cases and for gcc defining as
```__atttribute__((visibility("default")))```.

However, the following:
Example 2:

dll1:

```
EAPI extern int foo;
EAPI void foobar(void);

EAPI void bar()
{
  foo = 5;
  foobar();
}
```

dll2:

```
EAPI int foo = 0;
EAPI void foobar()
{
  printf ("foo %d\n", foo);
}
```

This will work on mingw but will not work for MSVC. And that's why
EAPI is the only solution that worked for MSVC.

Co-authored-by: João Paulo Taylor Ienczak Zanette <jpaulotiz@gmail.com>
Co-authored-by: Ricardo Campos <ricardo.campos@expertise.dev>
Co-authored-by: Lucas Cavalcante de Sousa <lucks.sousa@gmail.com>
2020-08-15 15:26:00 -03:00
Cedric BAIL 8f1c071d6a eina: rename EINA_{FLT,DBL}_CMP to EINA_{FLT,DBL}_EQ. 2017-01-06 15:58:46 -08:00
Cedric BAIL 3d0c4ac0f6 eina: fix double comparison in eina quaternion. 2016-12-19 16:33:46 -08:00
Stefan Schmidt 94978a3567 eina_quaternion: fix ein matrix type comparison
Fixing a bug that I fixed before. Sadly got introduced again. See
a486671bce for the details.

CID: 1341769
2015-12-09 01:22:38 +01:00
se.osadchy 82504d9d77 evas: recognize duplicated data structure with eina_quternion and ector.
Summary:
Move data structure and functionality to eina_quaternion from evas_vec4.

Reviewers: raster, Hermet, cedric

Subscribers: jpeg, Oleksander

Differential Revision: https://phab.enlightenment.org/D3327

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-07 16:36:16 -08:00
Cedric BAIL b6d2dc2cdf eina: fix coverity issue CID 1317154. 2015-08-22 19:52:57 +02:00
Cedric BAIL 8228145ca9 eina: add eina_matrix4_quaternion_get and eina_quaternion_matrix4_get.
Implementation taken from pseudo code at :
http://www.w3.org/TR/css3-transforms/#decomposing-a-3d-matrix
2015-08-21 16:40:31 +02:00
Vivek Ellur f3768834c5 eina_quaternion: add forgotten implementation of converting eina_matrix3 to eina_quaternion
Summary:
Implemenation of eina_matrix3_quaternion_get function

Signed-off-by: Vivek Ellur <vivek.ellur@samsung.com>

Reviewers: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2786

This was a function I forgot to finish implement. Thanks Vivek to take care of it.
As it comes with a test case, is self contained and fix a missing bit of code I will
push it at this point in time of our release process. Sorry everyone for that late push.

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-07-28 03:05:37 +02:00
perepelits.m 9bf6f14a8a eina: add eina_quaternion_set
Reviewers: cedric, raster, Hermet

Subscribers: cedric, artem.popov

Differential Revision: https://phab.enlightenment.org/D2717

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-06-17 17:52:10 +02:00
Cedric BAIL bc244e7a18 eina: fix copy and paster error detected by Coverity.
CID 1302701
2015-06-08 18:04:43 +02:00
Chris Michael 50c5ce0f9f eina: Fix warning about unused paramaters
@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-05 10:12:46 -04:00
Cedric BAIL 0acf23857f eina: beginning of a generic quaternion API. 2015-05-29 17:20:29 +02:00