View Javadoc
1   /*
2    * Copyright (c) 2002-2025 Gargoyle Software Inc.
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    * https://www.apache.org/licenses/LICENSE-2.0
8    *
9    * Unless required by applicable law or agreed to in writing, software
10   * distributed under the License is distributed on an "AS IS" BASIS,
11   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12   * See the License for the specific language governing permissions and
13   * limitations under the License.
14   */
15  package org.htmlunit.platform.canvas.rendering;
16  
17  import java.io.IOException;
18  
19  import org.apache.commons.logging.Log;
20  import org.apache.commons.logging.LogFactory;
21  
22  /**
23   * The default implementation of {@link RenderingBackend}.
24   *
25   * @author Ronald Brill
26   */
27  public class NoOpRenderingBackend implements RenderingBackend {
28  
29      private static final Log LOG = LogFactory.getLog(NoOpRenderingBackend.class);
30  
31      private static int ID_GENERATOR_;
32      private final int id_;
33  
34      private static synchronized int nextId() {
35          return ID_GENERATOR_++;
36      }
37  
38      /**
39       * Constructor.
40       * @param imageWidth the width
41       * @param imageHeight the height
42       */
43      public NoOpRenderingBackend(final int imageWidth, final int imageHeight) {
44          id_ = nextId();
45      }
46  
47      /**
48       * {@inheritDoc}
49       */
50      @Override
51      public double getGlobalAlpha() {
52          return 1.0;
53      }
54  
55      /**
56       * {@inheritDoc}
57       */
58      @Override
59      public void setGlobalAlpha(final double globalAlpha) {
60          if (LOG.isDebugEnabled()) {
61              LOG.debug("[" + id_ + "] setGlobalAlpha(" + globalAlpha + ")");
62          }
63      }
64  
65      /**
66       * {@inheritDoc}
67       */
68      @Override
69      public void beginPath() {
70          if (LOG.isDebugEnabled()) {
71              LOG.debug("[" + id_ + "] beginPath()");
72          }
73      }
74  
75      /**
76       * {@inheritDoc}
77       */
78      @Override
79      public void ellipse(final double x, final double y,
80              final double radiusX, final double radiusY,
81              final double rotation, final double startAngle, final double endAngle,
82              final boolean anticlockwise) {
83          if (LOG.isDebugEnabled()) {
84              LOG.debug("[" + id_ + "] ellipse()");
85          }
86      }
87  
88      /**
89       * {@inheritDoc}
90       */
91      @Override
92      public void bezierCurveTo(final double cp1x, final double cp1y,
93              final double cp2x, final double cp2y, final double x, final double y) {
94          if (LOG.isDebugEnabled()) {
95              LOG.debug("[" + id_ + "] bezierCurveTo()");
96          }
97      }
98  
99      /**
100      * {@inheritDoc}
101      */
102     @Override
103     public void arc(final double x, final double y, final double radius, final double startAngle,
104             final double endAngle, final boolean anticlockwise) {
105         if (LOG.isDebugEnabled()) {
106             LOG.debug("[" + id_ + "] arc()");
107         }
108     }
109 
110     /**
111      * {@inheritDoc}
112      */
113     @Override
114     public void clearRect(final double x, final double y, final double w, final double h) {
115         if (LOG.isDebugEnabled()) {
116             LOG.debug("[" + id_ + "] clearRect(" + x + ", " + y + ", " + w + ", " + h + ")");
117         }
118     }
119 
120     /**
121      * {@inheritDoc}
122      */
123     @Override
124     public void drawImage(final org.htmlunit.platform.image.ImageData imageData,
125             final int sx, final int sy, final Integer sWidth, final Integer sHeight,
126             final int dx, final int dy, final Integer dWidth, final Integer dHeight) throws IOException {
127         if (LOG.isDebugEnabled()) {
128             LOG.debug("[" + id_ + "] drawImage(" + sx + ", " + sy + ", " + sWidth + ", " + sHeight
129                     + "," + dx + ", " + dy + ", " + dWidth + ", " + dHeight + ")");
130         }
131     }
132 
133     /**
134      * {@inheritDoc}
135      */
136     @Override
137     public String encodeToString(final String type) throws IOException {
138         return null;
139     }
140 
141     /**
142      * {@inheritDoc}
143      */
144     @Override
145     public void fill() {
146         if (LOG.isDebugEnabled()) {
147             LOG.debug("[" + id_ + "] fill()");
148         }
149     }
150 
151     /**
152      * {@inheritDoc}
153      */
154     @Override
155     public void fillRect(final int x, final int y, final int w, final int h) {
156         if (LOG.isDebugEnabled()) {
157             LOG.debug("[" + id_ + "] fillRect(" + x + ", "  + y + ", "  + w + ", "  + h + ")");
158         }
159     }
160 
161     /**
162      * {@inheritDoc}
163      */
164     @Override
165     public void fillText(final String text, final double x, final double y) {
166         if (LOG.isDebugEnabled()) {
167             LOG.debug("[" + id_ + "] fillText('" + text + "', "  + x + ", "  + y + ")");
168         }
169     }
170 
171     /**
172      * {@inheritDoc}
173      */
174     @Override
175     public byte[] getBytes(final int width, final int height, final int sx, final int sy) {
176         if (LOG.isDebugEnabled()) {
177             LOG.debug("[" + id_ + "] getBytes(" + width + ", " + height + ", " + sx + ", " + sy + ")");
178         }
179 
180         return null;
181     }
182 
183     /**
184      * {@inheritDoc}
185      */
186     @Override
187     public void lineTo(final double x, final double y) {
188         if (LOG.isDebugEnabled()) {
189             LOG.debug("[" + id_ + "] lineTo(" + x + ", " + y + ")");
190         }
191     }
192 
193     /**
194      * {@inheritDoc}
195      */
196     @Override
197     public void moveTo(final double x, final double y) {
198         if (LOG.isDebugEnabled()) {
199             LOG.debug("[" + id_ + "] moveTo(" + x + ", " + y + ")");
200         }
201     }
202 
203     /**
204      * {@inheritDoc}
205      */
206     @Override
207     public void putImageData(
208             final byte[] imageDataBytes, final int imageDataHeight, final int imageDataWidth,
209             final int dx, final int dy, final int dirtyX, final int dirtyY,
210             final int dirtyWidth, final int dirtyHeight) {
211 
212         if (LOG.isDebugEnabled()) {
213             LOG.debug("[" + id_ + "] putImageData()");
214         }
215     }
216 
217     /**
218      * {@inheritDoc}
219      */
220     @Override
221     public void quadraticCurveTo(final double cpx, final double cpy,
222                     final double x, final double y) {
223         if (LOG.isDebugEnabled()) {
224             LOG.debug("[" + id_ + "] quadraticCurveTo()");
225         }
226     }
227 
228     /**
229      * {@inheritDoc}
230      */
231     @Override
232     public void rect(final double x, final double y, final double w, final double h) {
233         if (LOG.isDebugEnabled()) {
234             LOG.debug("[" + id_ + "] rect()");
235         }
236     }
237 
238     /**
239      * {@inheritDoc}
240      */
241     @Override
242     public void setFillStyle(final String fillStyle) {
243         if (LOG.isDebugEnabled()) {
244             LOG.debug("[" + id_ + "] setFillStyle(" + fillStyle + ")");
245         }
246     }
247 
248     /**
249      * {@inheritDoc}
250      */
251     @Override
252     public void setStrokeStyle(final String strokeStyle) {
253         if (LOG.isDebugEnabled()) {
254             LOG.debug("[" + id_ + "] setStrokeStyle(" + strokeStyle + ")");
255         }
256     }
257 
258     /**
259      * {@inheritDoc}
260      */
261     @Override
262     public int getLineWidth() {
263         return 1;
264     }
265 
266     /**
267      * {@inheritDoc}
268      */
269     @Override
270     public void restore() {
271         if (LOG.isDebugEnabled()) {
272             LOG.debug("[" + id_ + "] restore()");
273         }
274     }
275 
276     /**
277      * {@inheritDoc}
278      */
279     @Override
280     public void rotate(final double angle) {
281         if (LOG.isDebugEnabled()) {
282             LOG.debug("[" + id_ + "] rotate()");
283         }
284     }
285 
286     /**
287      * {@inheritDoc}
288      */
289     @Override
290     public void save() {
291         if (LOG.isDebugEnabled()) {
292             LOG.debug("[" + id_ + "] save()");
293         }
294     }
295 
296     /**
297      * {@inheritDoc}
298      */
299     @Override
300     public void setLineWidth(final int lineWidth) {
301         if (LOG.isDebugEnabled()) {
302             LOG.debug("[" + id_ + "] setLineWidth(" + lineWidth + ")");
303         }
304     }
305 
306     /**
307      * {@inheritDoc}
308      */
309     @Override
310     public void setTransform(final double m11, final double m12,
311                     final double m21, final double m22, final double dx, final double dy) {
312         if (LOG.isDebugEnabled()) {
313             LOG.debug("[" + id_ + "] setTransform("
314                         + m11 + ", "  + m12 + ", "  + m21 + ", "  + m22 + ", "  + dx + ", "  + dy + ")");
315         }
316     }
317 
318     /**
319      * {@inheritDoc}
320      */
321     @Override
322     public void stroke() {
323         if (LOG.isDebugEnabled()) {
324             LOG.debug("[" + id_ + "] stroke()");
325         }
326     }
327 
328     /**
329      * {@inheritDoc}
330      */
331     @Override
332     public void strokeRect(final int x, final int y, final int w, final int h) {
333         if (LOG.isDebugEnabled()) {
334             LOG.debug("[" + id_ + "] strokeRect(" + x + ", "  + y + ", "  + w + ", "  + h + ")");
335         }
336     }
337 
338     /**
339      * {@inheritDoc}
340      */
341     @Override
342     public void transform(final double m11, final double m12,
343                     final double m21, final double m22, final double dx, final double dy) {
344         if (LOG.isDebugEnabled()) {
345             LOG.debug("[" + id_ + "] transform()");
346         }
347     }
348 
349     /**
350      * {@inheritDoc}
351      */
352     @Override
353     public void translate(final int x, final int y) {
354         if (LOG.isDebugEnabled()) {
355             LOG.debug("[" + id_ + "] translate()");
356         }
357     }
358 
359     /**
360      * {@inheritDoc}
361      */
362     @Override
363     public void clip(final RenderingBackend.WindingRule windingRule,
364             final org.htmlunit.javascript.host.canvas.Path2D path) {
365         if (LOG.isDebugEnabled()) {
366             LOG.debug("[" + id_ + "] clip(" + windingRule + ", " + path + ")");
367         }
368     }
369 
370     /**
371      * {@inheritDoc}
372      */
373     @Override
374     public void closePath() {
375         if (LOG.isDebugEnabled()) {
376             LOG.debug("[" + id_ + "] closePath()");
377         }
378     }
379 }