forked from mia/Aegisub
Scrap all the CImg stuff entirely.
Originally committed to SVN as r2081.
This commit is contained in:
parent
4e2415a353
commit
9c85947f02
3 changed files with 0 additions and 23567 deletions
22915
OverLua/CImg.h
22915
OverLua/CImg.h
File diff suppressed because it is too large
Load diff
|
@ -1,508 +0,0 @@
|
|||
|
||||
CeCILL-C FREE SOFTWARE LICENSE AGREEMENT
|
||||
|
||||
|
||||
Notice
|
||||
|
||||
This Agreement is a Free Software license agreement that is the result
|
||||
of discussions between its authors in order to ensure compliance with
|
||||
the two main principles guiding its drafting:
|
||||
|
||||
* firstly, compliance with the principles governing the distribution
|
||||
of Free Software: access to source code, broad rights granted to
|
||||
users,
|
||||
* secondly, the election of a governing law, French law, with which
|
||||
it is conformant, both as regards the law of torts and
|
||||
intellectual property law, and the protection that it offers to
|
||||
both authors and holders of the economic rights over software.
|
||||
|
||||
The authors of the CeCILL-C (for Ce[a] C[nrs] I[nria] L[logiciel] L[ibre])
|
||||
license are:
|
||||
|
||||
Commissariat à l'Energie Atomique - CEA, a public scientific, technical
|
||||
and industrial research establishment, having its principal place of
|
||||
business at 25 rue Leblanc, immeuble Le Ponant D, 75015 Paris, France.
|
||||
|
||||
Centre National de la Recherche Scientifique - CNRS, a public scientific
|
||||
and technological establishment, having its principal place of business
|
||||
at 3 rue Michel-Ange, 75794 Paris cedex 16, France.
|
||||
|
||||
Institut National de Recherche en Informatique et en Automatique -
|
||||
INRIA, a public scientific and technological establishment, having its
|
||||
principal place of business at Domaine de Voluceau, Rocquencourt, BP
|
||||
105, 78153 Le Chesnay cedex, France.
|
||||
|
||||
|
||||
Preamble
|
||||
|
||||
The purpose of this Free Software license agreement is to grant users the
|
||||
right to modify and re-use the software governed by this license.
|
||||
|
||||
The exercising of this right is conditional on the obligation to make
|
||||
available to the community the modifications made to the source code of the
|
||||
software so as to contribute to its evolution.
|
||||
|
||||
In consideration of access to the source code and the rights to copy,
|
||||
modify and redistribute granted by the license, users are provided only
|
||||
with a limited warranty and the software's author, the holder of the
|
||||
economic rights, and the successive licensors only have limited liability.
|
||||
|
||||
In this respect, the risks associated with loading, using, modifying
|
||||
and/or developing or reproducing the software by the user are brought to
|
||||
the user's attention, given its Free Software status, which may make it
|
||||
complicated to use, with the result that its use is reserved for
|
||||
developers and experienced professionals having in-depth computer
|
||||
knowledge. Users are therefore encouraged to load and test the suitability
|
||||
of the software as regards their requirements in conditions enabling the
|
||||
security of their systems and/or data to be ensured and, more generally, to
|
||||
use and operate it in the same conditions of security. This Agreement may be
|
||||
freely reproduced and published, provided it is not altered, and that no
|
||||
provisions are either added or removed herefrom.
|
||||
|
||||
This Agreement may apply to any or all software for which the holder of
|
||||
the economic rights decides to submit the use thereof to its provisions.
|
||||
|
||||
|
||||
Article 1 - DEFINITIONS
|
||||
|
||||
For the purpose of this Agreement, when the following expressions
|
||||
commence with a capital letter, they shall have the following meaning:
|
||||
|
||||
Agreement: means this license agreement, and its possible subsequent
|
||||
versions and annexes.
|
||||
|
||||
Software: means the software in its Object Code and/or Source Code form
|
||||
and, where applicable, its documentation, "as is" when the Licensee
|
||||
accepts the Agreement.
|
||||
|
||||
Initial Software: means the Software in its Source Code and possibly its
|
||||
Object Code form and, where applicable, its documentation, "as is" when
|
||||
it is first distributed under the terms and conditions of the Agreement.
|
||||
|
||||
Modified Software: means the Software modified by at least one Integrated
|
||||
Contribution.
|
||||
|
||||
Source Code: means all the Software's instructions and program lines to
|
||||
which access is required so as to modify the Software.
|
||||
|
||||
Object Code: means the binary files originating from the compilation of
|
||||
the Source Code.
|
||||
|
||||
Holder: means the holder(s) of the economic rights over the Initial
|
||||
Software.
|
||||
|
||||
Licensee: means the Software user(s) having accepted the Agreement.
|
||||
|
||||
Contributor: means a Licensee having made at least one Integrated
|
||||
Contribution.
|
||||
|
||||
Licensor: means the Holder, or any other individual or legal entity, who
|
||||
distributes the Software under the Agreement.
|
||||
|
||||
Integrated Contribution: means any or all modifications, corrections,
|
||||
translations, adaptations and/or new functions integrated into the Source
|
||||
Code by any or all Contributors.
|
||||
|
||||
Related Module: means a set of sources files including their documentation
|
||||
that, without modification to the Source Code, enables supplementary
|
||||
functions or services in addition to those offered by the Software.
|
||||
|
||||
Derivative Software: means any combination of the Software, modified or not,
|
||||
and of a Related Module.
|
||||
|
||||
Parties: mean both the Licensee and the Licensor.
|
||||
|
||||
These expressions may be used both in singular and plural form.
|
||||
|
||||
|
||||
Article 2 - PURPOSE
|
||||
|
||||
The purpose of the Agreement is the grant by the Licensor to the
|
||||
Licensee of a non-exclusive, transferable and worldwide license for the
|
||||
Software as set forth in Article 5 hereinafter for the whole term of the
|
||||
protection granted by the rights over said Software.
|
||||
|
||||
|
||||
Article 3 - ACCEPTANCE
|
||||
|
||||
3.1 The Licensee shall be deemed as having accepted the terms and
|
||||
conditions of this Agreement upon the occurrence of the first of the
|
||||
following events:
|
||||
|
||||
* (i) loading the Software by any or all means, notably, by
|
||||
downloading from a remote server, or by loading from a physical
|
||||
medium;
|
||||
* (ii) the first time the Licensee exercises any of the rights
|
||||
granted hereunder.
|
||||
|
||||
3.2 One copy of the Agreement, containing a notice relating to the
|
||||
characteristics of the Software, to the limited warranty, and to the
|
||||
fact that its use is restricted to experienced users has been provided
|
||||
to the Licensee prior to its acceptance as set forth in Article 3.1
|
||||
hereinabove, and the Licensee hereby acknowledges that it has read and
|
||||
understood it.
|
||||
|
||||
|
||||
Article 4 - EFFECTIVE DATE AND TERM
|
||||
|
||||
|
||||
4.1 EFFECTIVE DATE
|
||||
|
||||
The Agreement shall become effective on the date when it is accepted by
|
||||
the Licensee as set forth in Article 3.1.
|
||||
|
||||
|
||||
4.2 TERM
|
||||
|
||||
The Agreement shall remain in force for the entire legal term of
|
||||
protection of the economic rights over the Software.
|
||||
|
||||
|
||||
Article 5 - SCOPE OF RIGHTS GRANTED
|
||||
|
||||
The Licensor hereby grants to the Licensee, who accepts, the following
|
||||
rights over the Software for any or all use, and for the term of the
|
||||
Agreement, on the basis of the terms and conditions set forth hereinafter.
|
||||
|
||||
Besides, if the Licensor owns or comes to own one or more patents
|
||||
protecting all or part of the functions of the Software or of its
|
||||
components, the Licensor undertakes not to enforce the rights granted by
|
||||
these patents against successive Licensees using, exploiting or
|
||||
modifying the Software. If these patents are transferred, the Licensor
|
||||
undertakes to have the transferees subscribe to the obligations set
|
||||
forth in this paragraph.
|
||||
|
||||
|
||||
5.1 RIGHT OF USE
|
||||
|
||||
The Licensee is authorized to use the Software, without any limitation
|
||||
as to its fields of application, with it being hereinafter specified
|
||||
that this comprises:
|
||||
|
||||
1. permanent or temporary reproduction of all or part of the Software
|
||||
by any or all means and in any or all form.
|
||||
2. loading, displaying, running, or storing the Software on any or
|
||||
all medium.
|
||||
3. entitlement to observe, study or test its operation so as to
|
||||
determine the ideas and principles behind any or all constituent
|
||||
elements of said Software. This shall apply when the Licensee
|
||||
carries out any or all loading, displaying, running, transmission
|
||||
or storage operation as regards the Software, that it is entitled
|
||||
to carry out hereunder.
|
||||
|
||||
|
||||
5.2 RIGHT OF MODIFICATION
|
||||
|
||||
The right of modification includes the right to translate, adapt, arrange,
|
||||
or make any or all modifications to the Software, and the right to
|
||||
reproduce the resulting Software. It includes, in particular, the right
|
||||
to create a Derivative Software.
|
||||
|
||||
The Licensee is authorized to make any or all modification to the
|
||||
Software provided that it includes an explicit notice that it is the
|
||||
author of said modification and indicates the date of the creation thereof.
|
||||
|
||||
|
||||
5.3 RIGHT OF DISTRIBUTION
|
||||
|
||||
In particular, the right of distribution includes the right to publish,
|
||||
transmit and communicate the Software to the general public on any or
|
||||
all medium, and by any or all means, and the right to market, either in
|
||||
consideration of a fee, or free of charge, one or more copies of the
|
||||
Software by any means.
|
||||
|
||||
The Licensee is further authorized to distribute copies of the modified
|
||||
or unmodified Software to third parties according to the terms and
|
||||
conditions set forth hereinafter.
|
||||
|
||||
|
||||
5.3.1 DISTRIBUTION OF SOFTWARE WITHOUT MODIFICATION
|
||||
|
||||
The Licensee is authorized to distribute true copies of the Software in
|
||||
Source Code or Object Code form, provided that said distribution
|
||||
complies with all the provisions of the Agreement and is accompanied by:
|
||||
|
||||
1. a copy of the Agreement,
|
||||
|
||||
2. a notice relating to the limitation of both the Licensor's
|
||||
warranty and liability as set forth in Articles 8 and 9,
|
||||
|
||||
and that, in the event that only the Object Code of the Software is
|
||||
redistributed, the Licensee allows effective access to the full Source Code
|
||||
of the Software at a minimum during the entire period of its distribution
|
||||
of the Software, it being understood that the additional cost of acquiring
|
||||
the Source Code shall not exceed the cost of transferring the data.
|
||||
|
||||
|
||||
5.3.2 DISTRIBUTION OF MODIFIED SOFTWARE
|
||||
|
||||
When the Licensee makes an Integrated Contribution to the Software, the terms
|
||||
and conditions for the distribution of the resulting Modified Software become
|
||||
subject to all the provisions of this Agreement.
|
||||
|
||||
The Licensee is authorized to distribute the Modified Software, in source
|
||||
code or object code form, provided that said distribution complies with all
|
||||
the provisions of the Agreement and is accompanied by:
|
||||
|
||||
1. a copy of the Agreement,
|
||||
2. a notice relating to the limitation of both the Licensor's warranty and
|
||||
liability as set forth in Articles 8 and 9,
|
||||
|
||||
and that, in the event that only the object code of the Modified Software is
|
||||
redistributed, the Licensee allows effective access to the full source code
|
||||
of the Modified Software at a minimum during the entire period of its
|
||||
distribution of the Modified Software, it being understood that the
|
||||
additional cost of acquiring the source code shall not exceed the cost of
|
||||
transferring the data.
|
||||
|
||||
5.3.3 DISTRIBUTION OF DERIVATIVE SOFTWARE
|
||||
|
||||
When the Licensee creates Derivative Software, this Derivative Software may
|
||||
be distributed under a license agreement other than this Agreement, subject
|
||||
to compliance with the requirement to include a notice concerning the rights
|
||||
over the Software as defined in Article 6.4. In the event the creation of the
|
||||
Derivative Software required modification of the Source Code, the Licensee
|
||||
undertakes that:
|
||||
|
||||
1. the resulting Modified Software will be governed by this Agreement,
|
||||
2. the Integrated Contributions in the resulting Modified Software will be
|
||||
clearly identified and documented,
|
||||
3. the Licensee will allow effective access to the source code of the
|
||||
Modified Software, at a minimum during the entire period of
|
||||
distribution of the Derivative Software, such that such modifications
|
||||
may be carried over in a subsequent version of the Software; it being
|
||||
understood that the additional cost of purchasing the source code of
|
||||
the Modified Software shall not exceed the cost of transferring the
|
||||
data.
|
||||
|
||||
|
||||
5.3.4 COMPATIBILITY WITH THE CeCILL LICENSE
|
||||
|
||||
When a Modified Software contains an Integrated Contribution subject to the
|
||||
CeCill license agreement, or when a Derivative Software contains a Related
|
||||
Module subject to the CeCill license agreement, the provisions set forth in
|
||||
the third item of Article 6.4 are optional.
|
||||
|
||||
|
||||
Article 6 - INTELLECTUAL PROPERTY
|
||||
|
||||
|
||||
6.1 OVER THE INITIAL SOFTWARE
|
||||
|
||||
The Holder owns the economic rights over the Initial Software. Any or
|
||||
all use of the Initial Software is subject to compliance with the terms
|
||||
and conditions under which the Holder has elected to distribute its work
|
||||
and no one shall be entitled to modify the terms and conditions for the
|
||||
distribution of said Initial Software.
|
||||
|
||||
The Holder undertakes that the Initial Software will remain ruled at
|
||||
least by the current license, for the duration set forth in Article 4.2.
|
||||
|
||||
|
||||
6.2 OVER THE INTEGRATED CONTRIBUTIONS
|
||||
|
||||
A Licensee who develops an Integrated Contribution is the owner of the
|
||||
intellectual property rights over this Contribution as defined by
|
||||
applicable law.
|
||||
|
||||
|
||||
6.3 OVER THE RELATED MODULES
|
||||
|
||||
A Licensee who develops an Related Module is the owner of the
|
||||
intellectual property rights over this Related Module as defined by
|
||||
applicable law and is free to choose the type of agreement that shall
|
||||
govern its distribution under the conditions defined in Article 5.3.3.
|
||||
|
||||
|
||||
6.4 NOTICE OF RIGHTS
|
||||
|
||||
The Licensee expressly undertakes:
|
||||
|
||||
1. not to remove, or modify, in any manner, the intellectual property
|
||||
notices attached to the Software;
|
||||
2. to reproduce said notices, in an identical manner, in the copies
|
||||
of the Software modified or not;
|
||||
3. to ensure that use of the Software, its intellectual property
|
||||
notices and the fact that it is governed by the Agreement is
|
||||
indicated in a text that is easily accessible, specifically from
|
||||
the interface of any Derivative Software.
|
||||
|
||||
The Licensee undertakes not to directly or indirectly infringe the
|
||||
intellectual property rights of the Holder and/or Contributors on the
|
||||
Software and to take, where applicable, vis-à-vis its staff, any and all
|
||||
measures required to ensure respect of said intellectual property rights
|
||||
of the Holder and/or Contributors.
|
||||
|
||||
|
||||
Article 7 - RELATED SERVICES
|
||||
|
||||
7.1 Under no circumstances shall the Agreement oblige the Licensor to
|
||||
provide technical assistance or maintenance services for the Software.
|
||||
|
||||
However, the Licensor is entitled to offer this type of services. The
|
||||
terms and conditions of such technical assistance, and/or such
|
||||
maintenance, shall be set forth in a separate instrument. Only the
|
||||
Licensor offering said maintenance and/or technical assistance services
|
||||
shall incur liability therefor.
|
||||
|
||||
7.2 Similarly, any Licensor is entitled to offer to its licensees, under
|
||||
its sole responsibility, a warranty, that shall only be binding upon
|
||||
itself, for the redistribution of the Software and/or the Modified
|
||||
Software, under terms and conditions that it is free to decide. Said
|
||||
warranty, and the financial terms and conditions of its application,
|
||||
shall be subject of a separate instrument executed between the Licensor
|
||||
and the Licensee.
|
||||
|
||||
|
||||
Article 8 - LIABILITY
|
||||
|
||||
8.1 Subject to the provisions of Article 8.2, the Licensee shall be
|
||||
entitled to claim compensation for any direct loss it may have suffered
|
||||
from the Software as a result of a fault on the part of the relevant
|
||||
Licensor, subject to providing evidence thereof.
|
||||
|
||||
8.2 The Licensor's liability is limited to the commitments made under
|
||||
this Agreement and shall not be incurred as a result of in particular:
|
||||
(i) loss due the Licensee's total or partial failure to fulfill its
|
||||
obligations, (ii) direct or consequential loss that is suffered by the
|
||||
Licensee due to the use or performance of the Software, and (iii) more
|
||||
generally, any consequential loss. In particular the Parties expressly
|
||||
agree that any or all pecuniary or business loss (i.e. loss of data,
|
||||
loss of profits, operating loss, loss of customers or orders,
|
||||
opportunity cost, any disturbance to business activities) or any or all
|
||||
legal proceedings instituted against the Licensee by a third party,
|
||||
shall constitute consequential loss and shall not provide entitlement to
|
||||
any or all compensation from the Licensor.
|
||||
|
||||
|
||||
Article 9 - WARRANTY
|
||||
|
||||
9.1 The Licensee acknowledges that the scientific and technical
|
||||
state-of-the-art when the Software was distributed did not enable all
|
||||
possible uses to be tested and verified, nor for the presence of
|
||||
possible defects to be detected. In this respect, the Licensee's
|
||||
attention has been drawn to the risks associated with loading, using,
|
||||
modifying and/or developing and reproducing the Software which are
|
||||
reserved for experienced users.
|
||||
|
||||
The Licensee shall be responsible for verifying, by any or all means,
|
||||
the suitability of the product for its requirements, its good working order,
|
||||
and for ensuring that it shall not cause damage to either persons or
|
||||
properties.
|
||||
|
||||
9.2 The Licensor hereby represents, in good faith, that it is entitled
|
||||
to grant all the rights over the Software (including in particular the
|
||||
rights set forth in Article 5).
|
||||
|
||||
9.3 The Licensee acknowledges that the Software is supplied "as is" by
|
||||
the Licensor without any other express or tacit warranty, other than
|
||||
that provided for in Article 9.2 and, in particular, without any warranty
|
||||
as to its commercial value, its secured, safe, innovative or relevant
|
||||
nature.
|
||||
|
||||
Specifically, the Licensor does not warrant that the Software is free
|
||||
from any error, that it will operate without interruption, that it will
|
||||
be compatible with the Licensee's own equipment and software
|
||||
configuration, nor that it will meet the Licensee's requirements.
|
||||
|
||||
9.4 The Licensor does not either expressly or tacitly warrant that the
|
||||
Software does not infringe any third party intellectual property right
|
||||
relating to a patent, software or any other property right. Therefore,
|
||||
the Licensor disclaims any and all liability towards the Licensee
|
||||
arising out of any or all proceedings for infringement that may be
|
||||
instituted in respect of the use, modification and redistribution of the
|
||||
Software. Nevertheless, should such proceedings be instituted against
|
||||
the Licensee, the Licensor shall provide it with technical and legal
|
||||
assistance for its defense. Such technical and legal assistance shall be
|
||||
decided on a case-by-case basis between the relevant Licensor and the
|
||||
Licensee pursuant to a memorandum of understanding. The Licensor
|
||||
disclaims any and all liability as regards the Licensee's use of the
|
||||
name of the Software. No warranty is given as regards the existence of
|
||||
prior rights over the name of the Software or as regards the existence
|
||||
of a trademark.
|
||||
|
||||
|
||||
Article 10 - TERMINATION
|
||||
|
||||
10.1 In the event of a breach by the Licensee of its obligations
|
||||
hereunder, the Licensor may automatically terminate this Agreement
|
||||
thirty (30) days after notice has been sent to the Licensee and has
|
||||
remained ineffective.
|
||||
|
||||
10.2 A Licensee whose Agreement is terminated shall no longer be
|
||||
authorized to use, modify or distribute the Software. However, any
|
||||
licenses that it may have granted prior to termination of the Agreement
|
||||
shall remain valid subject to their having been granted in compliance
|
||||
with the terms and conditions hereof.
|
||||
|
||||
|
||||
Article 11 - MISCELLANEOUS
|
||||
|
||||
|
||||
11.1 EXCUSABLE EVENTS
|
||||
|
||||
Neither Party shall be liable for any or all delay, or failure to
|
||||
perform the Agreement, that may be attributable to an event of force
|
||||
majeure, an act of God or an outside cause, such as defective
|
||||
functioning or interruptions of the electricity or telecommunications
|
||||
networks, network paralysis following a virus attack, intervention by
|
||||
government authorities, natural disasters, water damage, earthquakes,
|
||||
fire, explosions, strikes and labor unrest, war, etc.
|
||||
|
||||
11.2 Any failure by either Party, on one or more occasions, to invoke
|
||||
one or more of the provisions hereof, shall under no circumstances be
|
||||
interpreted as being a waiver by the interested Party of its right to
|
||||
invoke said provision(s) subsequently.
|
||||
|
||||
11.3 The Agreement cancels and replaces any or all previous agreements,
|
||||
whether written or oral, between the Parties and having the same
|
||||
purpose, and constitutes the entirety of the agreement between said
|
||||
Parties concerning said purpose. No supplement or modification to the
|
||||
terms and conditions hereof shall be effective as between the Parties
|
||||
unless it is made in writing and signed by their duly authorized
|
||||
representatives.
|
||||
|
||||
11.4 In the event that one or more of the provisions hereof were to
|
||||
conflict with a current or future applicable act or legislative text,
|
||||
said act or legislative text shall prevail, and the Parties shall make
|
||||
the necessary amendments so as to comply with said act or legislative
|
||||
text. All other provisions shall remain effective. Similarly, invalidity
|
||||
of a provision of the Agreement, for any reason whatsoever, shall not
|
||||
cause the Agreement as a whole to be invalid.
|
||||
|
||||
|
||||
11.5 LANGUAGE
|
||||
|
||||
The Agreement is drafted in both French and English and both versions
|
||||
are deemed authentic.
|
||||
|
||||
|
||||
Article 12 - NEW VERSIONS OF THE AGREEMENT
|
||||
|
||||
12.1 Any person is authorized to duplicate and distribute copies of this
|
||||
Agreement.
|
||||
|
||||
12.2 So as to ensure coherence, the wording of this Agreement is
|
||||
protected and may only be modified by the authors of the License, who
|
||||
reserve the right to periodically publish updates or new versions of the
|
||||
Agreement, each with a separate number. These subsequent versions may
|
||||
address new issues encountered by Free Software.
|
||||
|
||||
12.3 Any Software distributed under a given version of the Agreement
|
||||
may only be subsequently distributed under the same version of the
|
||||
Agreement or a subsequent version.
|
||||
|
||||
|
||||
Article 13 - GOVERNING LAW AND JURISDICTION
|
||||
|
||||
13.1 The Agreement is governed by French law. The Parties agree to
|
||||
endeavor to seek an amicable solution to any disagreements or disputes
|
||||
that may arise during the performance of the Agreement.
|
||||
|
||||
13.2 Failing an amicable solution within two (2) months as from their
|
||||
occurrence, and unless emergency proceedings are necessary, the
|
||||
disagreements or disputes shall be referred to the Paris Courts having
|
||||
jurisdiction, by the more diligent Party.
|
||||
|
||||
|
||||
Version 1.0 dated 2006-07-12.
|
|
@ -34,150 +34,6 @@
|
|||
#include "raster_ops.h"
|
||||
#include "../lua51/src/lauxlib.h"
|
||||
|
||||
/*#define cimg_display_type 0
|
||||
#include "CImg.h"
|
||||
using namespace cimg_library;
|
||||
|
||||
|
||||
// Type of images processed
|
||||
typedef CImg<unsigned char> Img;
|
||||
|
||||
// Make an Img representing the image of a cairo image surface
|
||||
// from the Lua wrapper of cairo.
|
||||
static inline Img ImgFromSurf(lua_State *L, int idx)
|
||||
{
|
||||
LuaCairoSurface *surfobj = LuaCairoSurface::GetObjPointer(L, idx);
|
||||
cairo_surface_t *surf = surfobj->GetSurface();
|
||||
if (cairo_surface_get_type(surf) != CAIRO_SURFACE_TYPE_IMAGE) {
|
||||
lua_pushliteral(L, "Object for raster operation is not an image surface. Video frames are not accepted.");
|
||||
lua_error(L);
|
||||
}
|
||||
cairo_surface_flush(surf);
|
||||
|
||||
int width = cairo_image_surface_get_width(surf);
|
||||
int height = cairo_image_surface_get_height(surf);
|
||||
int stride = cairo_image_surface_get_stride(surf);
|
||||
int dim = 0;
|
||||
switch (cairo_image_surface_get_format(surf)) {
|
||||
case CAIRO_FORMAT_ARGB32:
|
||||
case CAIRO_FORMAT_RGB24:
|
||||
dim = 4;
|
||||
break;
|
||||
case CAIRO_FORMAT_A8:
|
||||
dim = 1;
|
||||
break;
|
||||
case CAIRO_FORMAT_A1:
|
||||
lua_pushliteral(L, "1 bpp image surfaces are not supported for raster operations");
|
||||
lua_error(L);
|
||||
break;
|
||||
default:
|
||||
lua_pushliteral(L, "Unknown pixel format for image surface");
|
||||
lua_error(L);
|
||||
}
|
||||
|
||||
unsigned char *data = cairo_image_surface_get_data(surf);
|
||||
|
||||
Img res;
|
||||
|
||||
// Copy over data
|
||||
if (dim == 4) {
|
||||
res = Img(width, height, 1, 4);
|
||||
unsigned char *ptrA, *ptrR, *ptrG, *ptrB;
|
||||
ptrA = res.ptr(0, 0, 0, 0);
|
||||
ptrR = res.ptr(0, 0, 0, 1);
|
||||
ptrG = res.ptr(0, 0, 0, 2);
|
||||
ptrB = res.ptr(0, 0, 0, 3);
|
||||
// Can't use cimg_mapXY since we need to take stride into account
|
||||
for (int row = 0; row < height; row++) {
|
||||
unsigned char *ptrI = data + row*stride;
|
||||
for (int x = width-1; x > 0; x--) {
|
||||
*(ptrA)++ = *(ptrI++);
|
||||
*(ptrR)++ = *(ptrI++);
|
||||
*(ptrG)++ = *(ptrI++);
|
||||
*(ptrB)++ = *(ptrI++);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (dim == 1) {
|
||||
// Also need to take stride into account here
|
||||
res = Img(width, height, 1, 1);
|
||||
unsigned char *ptrO = res.ptr(0, 0, 0, 0);
|
||||
for (int row = 0; row < height; row++) {
|
||||
unsigned char *ptrI = data + row*stride;
|
||||
for (int x = width-1; x > 0; x--) {
|
||||
*(ptrO++) = *(ptrI++);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
static inline void ImgToSurf(lua_State *L, int idx, const Img &img)
|
||||
{
|
||||
// Assume it has already been checked that a suitable surface is in the stack index
|
||||
LuaCairoSurface *surfobj = LuaCairoSurface::GetObjPointer(L, idx);
|
||||
cairo_surface_t *surf = surfobj->GetSurface();
|
||||
|
||||
int width = cairo_image_surface_get_width(surf);
|
||||
int height = cairo_image_surface_get_height(surf);
|
||||
int stride = cairo_image_surface_get_stride(surf);
|
||||
int dim = 0;
|
||||
switch (cairo_image_surface_get_format(surf)) {
|
||||
case CAIRO_FORMAT_ARGB32:
|
||||
case CAIRO_FORMAT_RGB24:
|
||||
dim = 4;
|
||||
break;
|
||||
case CAIRO_FORMAT_A8:
|
||||
dim = 1;
|
||||
break;
|
||||
case CAIRO_FORMAT_A1:
|
||||
lua_pushliteral(L, "1 bpp image surfaces are not supported for raster operations");
|
||||
lua_error(L);
|
||||
break;
|
||||
default:
|
||||
lua_pushliteral(L, "Unknown pixel format for image surface");
|
||||
lua_error(L);
|
||||
}
|
||||
|
||||
if (width != img.dimx() || height != img.dimy() || dim != img.dimv()) {
|
||||
lua_pushliteral(L, "Internal error, attempting to write back CImg to image surface with mismatching dimensions");
|
||||
lua_error(L);
|
||||
}
|
||||
|
||||
unsigned char *data = cairo_image_surface_get_data(surf);
|
||||
|
||||
// Copy over data
|
||||
if (dim == 4) {
|
||||
const unsigned char *ptrA, *ptrR, *ptrG, *ptrB;
|
||||
ptrA = img.ptr(0, 0, 0, 0);
|
||||
ptrR = img.ptr(0, 0, 0, 1);
|
||||
ptrG = img.ptr(0, 0, 0, 2);
|
||||
ptrB = img.ptr(0, 0, 0, 3);
|
||||
// Can't use cimg_mapXY since we need to take stride into account
|
||||
for (int row = 0; row < height; row++) {
|
||||
unsigned char *ptrO = data + row*stride;
|
||||
for (int x = width-1; x > 0; x--) {
|
||||
*(ptrO)++ = *(ptrA++);
|
||||
*(ptrO)++ = *(ptrR++);
|
||||
*(ptrO)++ = *(ptrG++);
|
||||
*(ptrO)++ = *(ptrB++);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (dim == 1) {
|
||||
// Also need to take stride into account here
|
||||
const unsigned char *ptrI = img.ptr(0, 0, 0, 0);
|
||||
for (int row = 0; row < height; row++) {
|
||||
unsigned char *ptrO = data + row*stride;
|
||||
for (int x = width-1; x > 0; x--) {
|
||||
*(ptrO++) = *(ptrI++);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
cairo_surface_mark_dirty(surf);
|
||||
}*/
|
||||
|
||||
static inline cairo_surface_t *CheckSurface(lua_State *L, int idx)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue