cursor.c (1650B)
1/* 2 * Licensed to the Apache Software Foundation (ASF) under one 3 * or more contributor license agreements. See the NOTICE file 4 * distributed with this work for additional information 5 * regarding copyright ownership. The ASF licenses this file 6 * to you under the Apache License, Version 2.0 (the 7 * "License"); you may not use this file except in compliance 8 * with the License. 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, 13 * software distributed under the License is distributed on an 14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 * KIND, either express or implied. See the License for the 16 * specific language governing permissions and limitations 17 * under the License. 18 */ 19 20#include "config.h" 21#include "buffer.h" 22#include "cursor.h" 23 24#include <guacamole/mem.h> 25 26#include <stdlib.h> 27 28guacenc_cursor* guacenc_cursor_alloc() { 29 30 /* Allocate new cursor */ 31 guacenc_cursor* cursor = (guacenc_cursor*) guac_mem_alloc(sizeof(guacenc_cursor)); 32 if (cursor == NULL) 33 return NULL; 34 35 /* Allocate associated buffer (image) */ 36 cursor->buffer = guacenc_buffer_alloc(); 37 if (cursor->buffer == NULL) { 38 guac_mem_free(cursor); 39 return NULL; 40 } 41 42 /* Do not initially render cursor, unless it moves */ 43 cursor->x = cursor->y = -1; 44 45 return cursor; 46 47} 48 49void guacenc_cursor_free(guacenc_cursor* cursor) { 50 51 /* Ignore NULL cursors */ 52 if (cursor == NULL) 53 return; 54 55 /* Free underlying buffer */ 56 guacenc_buffer_free(cursor->buffer); 57 58 guac_mem_free(cursor); 59 60} 61